我在首页上关注“角度通用”:https://angular.io/guide/universal
如果没有通用,我将使用命令
ng serve --ssl true --ssl密钥/node_modules/browser-sync/lib/server/certs/server.key --ssl-cert / node_modules / browser-sync / lib / server / certs / server。 crt --host 0.0.0.0
现在,我在项目中添加了通用性,但是不知道如何设置它以“ https”运行。
请帮帮我。
这是我的服务器。
导入'zone.js / dist / zone-node'; 从'@ angular / core'导入{enableProdMode};
// Express Engine
从'@ nguniversal / express-engine'导入{ngExpressEngine};
//导入模块映射以进行延迟加载 从'@ nguniversal / module-map-ngfactory-loader'导入{provideModuleMap};
从* express进口*作为快递;
从“路径”导入{join};
//速度更快的服务器呈现w / Prod模式(不再需要dev模式)
enableProdMode();
// Express服务器
const app = express();
const PORT = process.env.PORT || 4000;
const DIST_FOLDER = join(process.cwd(),'dist / browser');
// *注意::将此保留为require(),因为此文件是从webpack动态生成的
const {AppServerModuleNgFactory,LAZY_MODULE_MAP} = require('./ dist / server / main');
//我们的通用快递引擎(在@ https://github.com/angular/universal/tree/master/modules/express-engine找到)
app.engine('html',ngExpressEngine({
引导程序:AppServerModuleNgFactory,
提供者:[
ProvideModuleMap(LAZY_MODULE_MAP)
]
}));
app.set('view engine','html');
app.set('views',DIST_FOLDER);
//示例Express Rest API端点
// app.get('/ api / **',(req,res)=> {});
//从/ browser
提供静态文件 app.get('。',express.static(DIST_FOLDER,{
maxAge:“ 1y”
}));
//所有常规路线都使用通用引擎
app.get('*',(req,res)=> {
res.render('index',{req});
});
//启动节点服务器
app.listen(PORT,()=> {
console.log(Node Express server listening on http://localhost:${PORT}
);
});
答案 0 :(得分:1)
所以这个问题公开了太久了:
我本人试图解决这个问题。我的第一种方法是更改server.ts express服务器,以便它将创建HTTPS实例而不是HTTP实例。由于尝试在Docker容器中启动文件,此操作失败。
因此,回到开始时,我使用HTTP启动了节点服务器,并使用Nginx服务器作为代理来连接到节点服务器。这还具有Web应用程序能够与更多客户端连接的优点。
在您的Nginx配置文件中,应该有以下内容:
const arr = myarray.reduce((a, c) => a.concat(c.country || []), []);
希望这会有所帮助;)