【发布时间】:2018-09-30 11:50:57
【问题描述】:
我有一个基于 MEAN STACK 的项目。
Front-end: Angular 6.*.
Backend:ExpressJs 和 Mongodb。
在本地,Angular 在端口 4200 上运行,ExpressJs 在端口 3000 上运行。
在生产中,我构建 Angular 并将其作为静态文件运行在我的 ExpressJs app.js 中。例如,
app.get("*", (req, res) => {
res.sendFile(path.join(__dirname, "public/web/browser/index.html"));
});
目前,在遵循文档后,我已经在我现有的项目上实现了Angular Universal。
它可以在本地找到,因为Angular Universal 在本地有自己的Node.js® Express 服务器,它在端口4000 上运行。
在生产中,当我想运行静态文件时,Angular Universal 确实会按预期显示。
比如app.js添加universal后。
let express = require("express");
let path = require("path");
let dotEnv = require("dotenv");
let passport = require("passport");
let app = express();
let server = require("http").Server(app);
dotEnv.load();
let fs = require("fs");
let io = require("socket.io").listen(server);
const appServer = require("./public/web/server/main");
// load intial configuration
require("./startup/initial-configuration")(app, io);
require("./server/config/socket")(io);
require("./server/config/database")(app, process.env.NODE_ENV);
require("./server/authentication/passport.local")(passport);
require("./server/authentication/passport.impersonate");
require("./startup/initial-routes")(app);
require("./server/middleware/custom-middleware")(app);
// angular universal
app.engine('html', ngUniversal.ngExpressEngine({
bootstrap: appServer.AppServerModuleNgFactory
}));
app.get("*", (req, res) => {
res.sendFile(path.join(__dirname, "public/web/index.html"));
});
require("./startup/schedule-jobs")(io);
module.exports = { app: app, server: server };
我的问题是如何添加 server.ts 文件 int app.js expressJS 文件中的那些功能。
我已经搜索了很多,但我找不到任何解决方案。
提前致谢。
【问题讨论】:
标签: angular express angular-universal