我使用 Node
作为 React App
和 Microsoft Dynamics Nav
之间的代理服务器。我在 OData
和 SOAP
Web 服务中发出 CRUD
请求。当 Dynamics Nav Server 响应错误时,我需要在 React App 中显示该错误。问题是我总是在 Node.js 中收到 http 200
状态代码,即使我在服务器上收到错误(即 404
)。这是 Node.js 和 Postman 中 put 请求的示例响应:
postman
Node.js
这是 server.js 文件:
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const app = express();
const server = app.listen(5000, function() {
console.log(new Date().toISOString() + ": server started on port 5000");
});
server.on('connection', (socket) => {
console.log('New connection...');
});
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());
app.use(cors());
//app.use(bodyParser.urlencoded({ extended: true }));
app.get('/', function (req, res) {
res.send('Express for courier is working on IISNode!');
});
app.use(require('./routes/routesLogin'));
app.use(require('./routes/routesCustomers'));
app.use(require('./routes/routesContacts'));
app.use(require('./routes/routesPostCodes'));
app.use(require('./routes/routesCountriesRegions'));
app.use(require('./routes/routesDepots'));
app.use(require('./routes/routesPUOrder'));
这是放置请求的函数:
ModifyPUOrder: function (req, res) {
console.log('MODIFY');
const PUOrderNo = req.body.puOrderNo;
const updatedValue = req.body.updatedValue;
console.log('MODIFY PU', PUOrderNo);
console.log('UPDATEDVALUE', updatedValue)
const url = `${base}/PUOrderCard('${PUOrderNo}')`;
request = `{ ${updatedValue} }`;
put(username, password, url, request).then(response => {
console.log(response);
res.send(response);
})
},
任何帮助将不胜感激!
最佳答案
Express 中响应的默认状态代码是 200
,您可以在调用 send
之前更改此值
res.status(400).send('Bad request')
关于node.js - 即使服务器出现错误,Node.js 中始终会收到 http 状态代码 200,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56594377/