简单的Expressjs应用程序没有回应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的Expressjs应用程序没有回应相关的知识,希望对你有一定的参考价值。

我正在努力升级到expressjs 4.0。下面非常简单的代码将请求挂起到http://localhost:3000/,没有多少重新排列的东西修复了这个问题。但是,如果我注释掉cookie-parser,body-parser和express-session的app.use()语句,它就可以了。显然我需要它们,所以留下它们注释掉不是一种选择。

我知道我做错了,这很简单,但我无法看到它。有人能给我一个正确方向的推动吗?

var express = require('express')
  , cookie = require('cookie-parser')
  , body = require('body-parser')
  , session = require('express-session')
  , http = require('http');

var app = express();
var router = express.Router();

app.use(cookie);
app.use(body);
app.use(session( secret: 'bigsecret' ));

router.get('/', function(req, res, next) 
  res.send('Welcome');
);

app.use(router);

app.set('port', process.env.PORT || 3000);

http.createServer(app).listen(app.get('port'), function()
  console.log('Express server listening on port ' + app.get('port'));
);
答案

中间件应该作为函数调用传递:

app.use(cookie);
app.use(body);

应该

app.use(cookie());
app.use(body());

以上是关于简单的Expressjs应用程序没有回应的主要内容,如果未能解决你的问题,请参考以下文章

ExpressJS/AngularJS:将 JSON 对象转换为字符串

用户捐赠 - ExpressJS,Angular 9

使用中间件保护 Expressjs 路由

没有 ExpressJS 到本地服务器的“Access-Control-Allow-Origin”标头

如何在 tsconfig.json 上启用 typeRoots 的 typescript/expressjs 应用程序上运行 jest

从不同来源获取时 Expressjs cors 问题