如何用express代替angular-cli server



我想用express代替angular-cli中的内置服务器,这样我就可以编辑express javascript来添加我需要在服务器上执行的小部件。怎么才能做到呢?

我在angular-cli生成的src文件夹中添加了一个app.js文件,并编写了一个简单的服务器。当你运行ng build时,你添加到src和public目录中的文件将被编译并添加到dist目录中。所以你应该渲染/发送相对于dist:

中的index.html文件
app.get('/*', function (req, res) {
    res.sendFile(path.join(__dirname,'index.html'))
});

从终端运行快递服务器:$ node dist/app.js

当我尝试嵌套app.js文件时,我得到一些编译器错误:src/server/app.js,但所有其他服务器文件在嵌套时工作良好,例如模型和路由。

最好的解决方案是将其替换为Ember CLI所期望的(并因此在Angular CLI包中实现)。我用我的代理b/c,我从来没有得到-proxy选项正确工作。

首先,确保你已经安装了express:

$ npm install express --save-dev

在/server/index.js中创建一个express server

。/服务器/index.js ->

var express = require('express');
module.exports = express();

就是这么简单。'ng serve'处理提供静态文件,因此不需要添加您自己的文件。如果你想添加一些东西,比如你的反向代理,只需在导出之前构建并添加到应用程序中:

var express = require('express');
var httpProxy = require('http-proxy');
var app = express();
app.all('/api/*', function(req, res) {
  var proxy = httpProxy.createServer('http://localhost:8000');
  req.url = req.url.replace(/^/api/i, '');
  proxy.web(req, res);
});
module.exports = app;

请注意,Ember CLI确实支持代理,尽管我还没有很幸运地使用它来满足我的需要。

相关内容

  • 没有找到相关文章

最新更新