Я использую Node
в качестве прокси-сервера между React App
и Microsoft Dynamics Nav
. Я делаю CRUD
запросы как в OData
, так и в SOAP
веб-сервисах. Когда Dynamics Nav Server отвечает ошибкой, мне нужно показать эту ошибку в приложении React. Проблема в том, что я всегда получаю код состояния http 200
в Node.js, даже когда получаю ошибку на сервере (т.е. 404
). Это пример ответа на запрос на размещение как в Node.js, так и в 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.info(new Date().toISOString() + ": server started on port 5000");
});
server.on('connection', (socket) => {
console.info('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.info('MODIFY');
const PUOrderNo = req.body.puOrderNo;
const updatedValue = req.body.updatedValue;
console.info('MODIFY PU', PUOrderNo);
console.info('UPDATEDVALUE', updatedValue)
const url = `${base}/PUOrderCard('${PUOrderNo}')`;
request = `{ ${updatedValue} }`;
put(username, password, url, request).then(response => {
console.info(response);
res.send(response);
})
},
Любая помощь приветствуется!
Код состояния по умолчанию для ответа в Express — 200
, вы можете изменить его перед вызовом send
res.status(400).send('Bad request')