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)正在运行但请求不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs Express 重定向不起作用

使用 Express 检测 NodeJS 上的 AJAX 请求

CORS“允许凭据”Nodejs/Express

NodeJS / Express:从请求中获取用户名和密码

NodeJs Express - 将请求参数传递给护照身份验证

GET 请求不起作用,但 POST 请求正在用于数据库查询