使用Node.js进行Angular4服务器端渲染

时间:2017-09-18 14:42:47

标签: node.js angular

我在这里遵循Angular4服务器端教程(官方故事)  https://github.com/angular/angular-cli/wiki/stories-universal-rendering但是,它基于CommonJs,是否有人知道如何在NodeJs服务器上托管它?本教程不包含与" hosting"相关的任何信息。与NodeJs,有人可以指导我如何做到这一点?如何在Ubuntu中设置环境?如何创建一个为应用程序提供服务的server.js文件?

我设法构建一个服务器应用程序,但我不知道如何在服务器上托管它,不断发现与找不​​到模块有关的错误。请帮忙。

这是教程server.js(它与node.js兼容)吗?

// Load zone.js for the server.
require('zone.js/dist/zone-node');

// Import renderModuleFactory from @angular/platform-server.
var renderModuleFactory = require('@angular/platform-server').renderModuleFactory;

// Import the AOT compiled factory for your AppServerModule.
// This import will change with the hash of your built server bundle.
var AppServerModuleNgFactory = require('./dist-server/main.988d7a161bd984b7eb54.bundle').AppServerModuleNgFactory;

// Load the index.html file.
var index = require('fs').readFileSync('./src/index.html', 'utf8');

// Render to HTML and log it to the console.
renderModuleFactory(AppServerModuleNgFactory, {document: index, url: '/'}).then(html => console.log(html));

我收到了错误...

Error: Cannot find module 'zone.js/dist/zone-node'
    at Function.Module._resolveFilename (module.js:485:15)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    ... ... ...

我的目录结构是这样的:

/var/www/example.com/public_html
    dist/
    dist-server/
    node_modules/
    server.js

我知道' zone.js/dist/zone-node'但是,即使我更改为&{39; node_modules/zone.js/dist/zone-node.js',也会出现类似的错误...不应该nodeJs能够识别' zone.js/dist/zone-node'路径,我相信有一个配置文件,但在哪里可以找到?

我希望有人可以向我们提供与 Angular4服务器端渲染相关的完整教程,我几周都找不到工作教程......请帮忙。

0 个答案:

没有答案