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

我遵循Angular4服务器端教程(官方故事)https://github.com/angular/angular-cli/wiki/stories-universal-rendering,但是,它基于CommonJs ,有谁知道如何托管它在NodeJs服务器上? 本教程不包含与使用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 '不可用,但是,即使我改为' node_modules/zone.js/dist/zone-node.js ',也会出现一些类似的错误。 。不应该是nodeJs能够识别' zone.js/dist/zone-node '路径,我相信有一个配置文件,但是在哪里可以找到?

我希望有人可以提供给我们一个完整的Angular4服务器端渲染相关的教程 ,我几周之内无法找到工作教程...请帮助。

链接地址: http://www.djcxy.com/p/31385.html

上一篇: Angular4 Server Side Rendering with Node.js

下一篇: Diagnosing problems on Angular4 server side rendering with Asp.net Core