在一个 Express 应用中提供多个 Angular 通用应用
Serving multiple Angular Universal apps in one Express app
我有两个不同的 Angular 应用程序是用 angular-cli 制作的,都已经在 node.js 服务器上通过 Angular Universal following 修改为 运行 Angular's tutorial,但示例只能提供一个应用程序。
示例创建视图引擎:
app.engine('html', (_, options, callback) => {
renderModuleFactory(AppServerModuleNgFactory, {
// Our index.html
document: template,
url: options.req.url,
// DI so that we can get lazy-loading to work differently (since we need it to just instantly render it)
extraProviders: [
provideModuleMap(LAZY_MODULE_MAP)
]
}).then(html => {
callback(null, html);
});
});
app.set('view engine', 'html');
由于每个应用程序都有不同的 index.html
文件,我需要创建两个视图引擎,但我如何才能告诉 Express 在一条路径中使用一个引擎而在另一条路径中使用另一个引擎?
换句话说,如何将 app1
映射到 /app1
并将 app2
映射到 /app2
?
Express 应用程序可以将多个 sub-applications 挂载到不同的端点:
const app1 = express();
const app2 = express();
...
app.use('/app1', app1);
app.use('/app2', app2);
app.listen(3000);
子应用程序可以有自己的设置,不应 listen
ed。
我有两个不同的 Angular 应用程序是用 angular-cli 制作的,都已经在 node.js 服务器上通过 Angular Universal following 修改为 运行 Angular's tutorial,但示例只能提供一个应用程序。
示例创建视图引擎:
app.engine('html', (_, options, callback) => {
renderModuleFactory(AppServerModuleNgFactory, {
// Our index.html
document: template,
url: options.req.url,
// DI so that we can get lazy-loading to work differently (since we need it to just instantly render it)
extraProviders: [
provideModuleMap(LAZY_MODULE_MAP)
]
}).then(html => {
callback(null, html);
});
});
app.set('view engine', 'html');
由于每个应用程序都有不同的 index.html
文件,我需要创建两个视图引擎,但我如何才能告诉 Express 在一条路径中使用一个引擎而在另一条路径中使用另一个引擎?
换句话说,如何将 app1
映射到 /app1
并将 app2
映射到 /app2
?
Express 应用程序可以将多个 sub-applications 挂载到不同的端点:
const app1 = express();
const app2 = express();
...
app.use('/app1', app1);
app.use('/app2', app2);
app.listen(3000);
子应用程序可以有自己的设置,不应 listen
ed。