这可能是重复问题但不能理解如何配置FE和BE一起运行它们。
我已经完成了this SO thread和this SO thread。但无法理解。
我的Node + Express在4300上运行
app.post('/postData', function(req, res) {
//some worst logics here :)
});
和
angular 42在4200上运行。下面是我调用post endpoint
的FE服务postData(feData) {
console.log(feData);
this.http.post('/postData', feData, this.httpHeader).subscribe((data) => {
});
}
我尝试的是打开2 cmd提示。一个用节点server.js运行server.js,另一个用ng服务运行。
结果===> 404不是fount(不能发布)
我做错了。请指出我正确的方向。在此之后我只想在github.io
上主持它提前致谢。
答案 0 :(得分:8)
在这种情况下您需要做的是将Angular 5应用程序移动到快速进程下运行。您可以在此tutorial之后实现此目的 - 请参阅第2项
我删除了一些并发症,但我真的建议你看一下教程。
npm install --save express body-parser
创建一个文件来运行像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);
}
编辑" package.json"指定应用的启动方式:
"scripts": {
"ng": "ng",
"start": "ng build && node server.js",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
现在,创建将运行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;
为元素创建路径文件夹是一个很好的做法。使用以下内容创建文件routes/sample.js
:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.send('RESTful API');
});
module.exports = router;
使用node命令运行服务器:
npm start
答案 1 :(得分:0)
根据经验,将后端或微服务与前端应用程序分开。