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);
我做错了什么?
答案 0 :(得分:1)
如果你想使用nodejs,express和bodyParser,我建议你清楚说明用于请求的方法。你的意思是使用get方法还是帖子?请记住根据您通过沟通获得的信息的使用情况来回答。
我想您要使用帖子方法,因为已为post方法创建了body parser,并为获取了<{3}} 方法。
---客户端:只需编写一个表单元素,指定它使用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();
}
答案 1 :(得分:1)
由于安全漏洞,BodyParser不再被广泛使用。它现在已集成在Express中。不要使用它。
答案 2 :(得分:0)
不应该这个
var server = new requestServer();
server.listen(6667);
是这个
var server = new requestServer();
server.app.listen(6667);
由于app是快递对象,因此返回。您可以发布调用positionChange
的完整代码吗。