我运行项目后端“ server.js”(快速)。它工作正常,没有任何问题。但是我从Postman或其他应用程序发送了请求,但无法得到任何响应或错误。仅加载。 有时它可以正常工作,并且我可以正确地获取所有请求,但是几分钟或几个小时后,我无法获得任何请求响应。 请帮我。是什么原因导致此问题? 我正在使用Reactjs,Nodejs(express)
答案 0 :(得分:0)
使用此代码作为启动文件中的全局错误处理。并且您将获得所有错误res作为json。
因为您的网址可能有错字。因此,有了此代码,您将获得.. not fount error res ...作为json。
// route not found
app.use((req, res, next) => {
const error = new Error('Not found');
error.message = 'Invalid route';
error.status = 404;
next(error);
});
// log errors to console
app.use(logErrors);
//
app.use(clientErrorHandler);
app.use((error, req, res, next) => {
res.status(error.status || 500);
return res.json({
status:error.status || 500,
message: error.message,
error: {
error: error.message,
},
});
});
// log errors to console
function logErrors(err, req, res, next) {
console.error(err.stack);
next(err);
}
// error handling for xhr request
function clientErrorHandler(err, req, res, next) {
if (req.xhr) {
//console.log('xhr request');
res.status(400).send({status: 400, message: "Bad request from client", error: err.message });
} else {
next(err);
}
}
let port = process.env.PORT || 8081;
app.listen(port, () => {
console.log(`Listening on port ${port}`);
});
答案 1 :(得分:0)
这是使用Express JS的简单方法,也许您可以尝试。
首先,您必须输入应用程序的详细信息。
npm init
第二,必须安装Body Parser和Express
npm install body-parser express --save
第三,将此代码放置到您的主要js中(例如,在npm init中输入的server.js或index.js)
const BodyParser = require( 'body-parser' );
const Express = require( 'express' );
const App = Express();
// Parse request of content-type - application/x-www-form-urlencoded
App.use( BodyParser.urlencoded( { extended: false } ) );
// Parse request of content-type - application/json
App.use( BodyParser.json() );
App.listen( 3000, () => {
console.log( "Server Run:" + 3000 );
} );
App.get( '/', function( req, res ) {
res.json( {
status: "OK"
} );
} );
App.get( '/test', function( req, res ) {
res.json( {
status: "Hehehe Test"
} );
} );
第四,启动节点
node server.js
现在,您可以在浏览器中访问代码
http://localhost:3000/
http://localhost:3000/test