Nodejs(express)正在运行但请求不起作用
Posted
技术标签:
【中文标题】Nodejs(express)正在运行但请求不起作用【英文标题】:Nodejs (express) running but requests not working 【发布时间】:2019-10-24 05:30:34 【问题描述】:我运行我的项目后端“server.js”(快递)。它工作正常,没有任何问题。但是我从 Postman 或其他应用程序发送请求,我无法得到任何响应或错误。仅加载。 有时它工作正常,我可以正确收到所有请求,但几分钟或几小时后,我无法得到任何请求响应。 请帮我。是什么导致这个问题? 我正在使用 Reactjs、Nodejs (express)
【问题讨论】:
问题出在您的代码中,您需要将其包含在内,以便我们找出问题所在。 嗨!欢迎来到堆栈溢出。正如@k0hamed 提到的,我们需要查看您尝试过的内容(您的代码),以便我们帮助调试正在发生的事情。一个最小的例子是最好的。在how to ask a good question查看这篇文章 【参考方案1】:这是一个使用express js的简单方法,也许你可以试试。
首先,您必须输入应用的详细信息。
npm init
其次,必须安装 Body Parser 和 Express
npm install body-parser express --save
第三,把这段代码放到你的 main 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
【讨论】:
【参考方案2】:将此代码用作启动文件中的全局错误处理。你会得到所有错误资源作为json。
因为您的网址中可能存在拼写错误。所以有了这个代码,你会得到.. not fount error res ... as 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`);
);
【讨论】:
以上是关于Nodejs(express)正在运行但请求不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用 Express 检测 NodeJS 上的 AJAX 请求