如何运行角度通用HTTPS

时间:2019-05-26 02:39:56

标签: angular angular7 angular-universal

我在首页上关注“角度通用”: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});
  });

1 个答案:

答案 0 :(得分:1)

所以这个问题公开了太久了:

我本人试图解决这个问题。我的第一种方法是更改​​server.ts express服务器,以便它将创建HTTPS实例而不是HTTP实例。由于尝试在Docker容器中启动文件,此操作失败。

因此,回到开始时,我使用HTTP启动了节点服务器,并使用Nginx服务器作为代理来连接到节点服务器。这还具有Web应用程序能够与更多客户端连接的优点。

在您的Nginx配置文件中,应该有以下内容:

const arr = myarray.reduce((a, c) => a.concat(c.country || []), []);

希望这会有所帮助;)