2

我对 Node.js 和 Express 有一个大问题。

我想使用我的请求的正文元素,但我不知道如何bodyParser()在我的程序中使用;这不仅仅是app.use()...

你自己看:

requestServer = function(){
  var express = require('express');
  this.ex = express;

  //this.app = require('express')();
  this.app = express();
  this.server = require('http').createServer(this.app);
  this.io = require('socket.io').listen(this.server, {log: false});
  this.socket = []; 

  this.app.post('/test/', this.testFunction.bind(this));

  this.io.sockets.on('connection', this.socketConnection.bind(this));

  this.app.use(express.bodyParser());
};

...

requestServer.prototype.positionChange = function(req, res){    
  console.log(req.body); // says its undefined???
  console.log(req.body.name); // also undefined :(
};

...

var server = new requestServer();
server.listen(6667);

我究竟做错了什么?

4

3 回答 3

1

如果您想使用 nodejs、express 和 bodyParser,我建议您清楚地了解用于请求的方法。你的意思是使用 get 方法还是 post ?记得根据你在交流中获得的信息的使用情况来回答。

我想您想使用post方法,因为已经为 post 方法创建了正文解析器,并为get方法创建了查询

---客户端:只需编写一个表单元素,指定它使用 post 方法。为每个输入元素命名。

 <form method="POST" action="/readRequest">
      <input type="text" name="email" hint="email" value="" size="40"/>
      <inpnut type="submit" value="request" /> 
 </form>

---节点端:进入要捕获/readRequest的中间件,使用“。”读取值 请求元素上的运算符

function (req, res, next){ 
  console.log('Email received: '+req.body.email); 
  next();
}
于 2014-01-13T17:07:47.527 回答
1

由于 BodyParser 的安全漏洞,它不再被广泛使用。它现在集成在 Express 本身中。不要使用它。

于 2014-08-28T17:55:40.223 回答
0

不应该这样

var server = new requestServer();
server.listen(6667);

成为这个

var server = new requestServer();
server.app.listen(6667);

由于 app 是返回的 express 对象。你能在positionChange调用的地方发布完整的代码吗?

于 2013-06-06T14:30:28.340 回答