У меня есть проект, основанный на MEAN STACK.
Front-end
: Угловой 6. *.
Backend
: ExpressJs и Mongodb.
Локально angular работает на порту 4200
, а ExpressJs - на порту 3000
.
На производстве я создаю angular и запускаю его как статические файлы внутри моих ExpressJ 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
после добавления универсального.
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
files int app.js
файле expressJS.
Я много искал, но не нашел решения.
Заранее спасибо.