Angular 5 + NodeJS Express - 如何在同一个端口运行?

wor*_*der 4 node.js express angular angular5

这可能是重复问题但不能理解如何配置FE和BE一起运行它们.

我已经完成了这个SO线程这个SO线程.但无法理解.

我的Node + Express在4300上运行

app.post('/postData', function(req, res) {
//some worst logics here :)
});
Run Code Online (Sandbox Code Playgroud)

角度5运行在4200.下面是我的FE服务,呼叫后端点

postData(feData) {
        console.log(feData);
        this.http.post('/postData', feData, this.httpHeader).subscribe((data) => {
        });
    }
Run Code Online (Sandbox Code Playgroud)

我尝试的是打开2厘米提示.一个用节点server.js运行server.js,另一个用ng服务运行.

结果===> 404不是fount(不能发帖)

哪里做错了.请指出我正确的方向.在此之后我只想在github.io上托管它

提前致谢.

Mar*_*ski 9

在这种情况下你需要做的是移动你的Angular 5应用程序在快速进程下运行.您可以按照本教程实现此目的- 请参阅第2项

我删除了一些复杂功能,但我真的建议你看一下教程.

npm install --save express body-parser
Run Code Online (Sandbox Code Playgroud)

创建一个文件来运行您的节点应用程序,server.js并添加以下代码:

var app = require('app.js');
var debug = require('debug')('mean-app:server');
var http = require('http');

var port = normalizePort(process.env.PORT || '4300');
app.set('port', port);

var server = http.createServer(app);
server.listen(port);
server.on('listening', onListening);

function onListening() {
  var addr = server.address();
  debug('Listening on ' + port);
}
Run Code Online (Sandbox Code Playgroud)

编辑"package.json"以指定应用程序的启动方式:

"scripts": {
  "ng": "ng",
  "start": "ng build && node server.js",
  "build": "ng build",
  "test": "ng test",
  "lint": "ng lint",
  "e2e": "ng e2e"
},
Run Code Online (Sandbox Code Playgroud)

现在,创建将运行express的app.js:

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');

var sample = require('./routes/sample.js');
var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({'extended':'false'}));

//Put your angular dist folder here
app.use(express.static(path.join(__dirname, 'dist')));
app.use('/samples', express.static(path.join(__dirname, 'dist')));
app.use('/sample', sample);

module.exports = app;
Run Code Online (Sandbox Code Playgroud)

为元素创建routes文件夹是一个很好的做法.创建routes/sample.js包含以下内容的文件:

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
  res.send('RESTful API');
});

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

使用node命令运行服务器:

npm start
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

6711 次

最近记录:

6 年,2 月 前