gpt4 book ai didi

node.js - Angular 和 Node.JS Express 如何在同一个端口运行?

转载 作者:太空狗 更新时间:2023-10-29 17:44:15 24 4
gpt4 key购买 nike

这可能会重复问题,但无法理解如何配置 FE 和 BE 同时运行它们。

我已经完成了 thisthis 问题,但无法理解。

我的Node+Express跑在4300上

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

在 4200 上运行的 Angular 5。下面是我调用 post 端点的 FE 服务

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

我尝试打开两个 cmd 窗口:一个通过 node server.js 运行 server.js,另一个使用 ng serve。

结果:

404 not fount(cannot post)

我做错了什么。

最佳答案

在这种情况下,您需要做的是将 Angular 5 应用程序移动到 express 进程下运行。您可以按照此 tutorial 实现此目的- 见第 2 项

我删除了一些并发症,但我真的建议您看一下教程。

npm install --save express body-parser

创建一个文件来运行您的 Node 应用程序,例如 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

关于node.js - Angular 和 Node.JS Express 如何在同一个端口运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50910305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com