关于node.js:node express模块抛出’没有方法urlencoded’错误

node express module throwing 'has no method urlencoded' error

1
2
3
4
5
6
var express=require('express')
var app=express();

console.log("Encoded",express.urlencoded());

app.use(express.urlencoded());

上述代码引发以下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[user@localhost nodejs]$ node program.js

/home/user/Desktop/nodejs/program.js:41
console.log("Encoded",express.urlencoded());
                               ^
TypeError: Object function createApplication() {
  var app = function(req, res, next) {
    app.handle(req, res, next);
  };

  mixin(app, proto);
  mixin(app, EventEmitter.prototype);

  app.request = { __proto__: req, app: app };
  app.response = { __proto__: res, app: app };
  app.init();
  return app;
} has no method 'urlencoded'
    at Object. (/home/user/Desktop/nodejs/program.js:41:32)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

这里似乎有一个类似的问题-express.js连接模块有问题,但我已经使用这里列出的建议检查了express3.0.0-查找已安装的NPM包的版本

我还阅读了这里的api文档-http://expressjs.com/api.html,它们列出了urlencoded()

请帮忙。

我还想指出,我也尝试过使用bodyParser(),但这也给了has no method同样的错误。


快速指南有点过时了。

对于其他具有相同问题的方法,解决方法是将这些方法转移到新的模块body-parser

样本代码

1
2
3
4
5
var express=require('express');
var app=express();
var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded());