使用mootools和node.js以及expressjs发出AJAX请求

使用mootools和node.js以及expressjs发出AJAX请求,ajax,node.js,mootools,Ajax,Node.js,Mootools,我正在尝试使用mootools在节点0.10.3上建立AJAX连接。我的代码是: 客户端 var ajax = new Request({ url: '/register', method: 'post', onSuccess: function(responseText){ console.log(responseText); } }) var json = {data:'data'}; ajax.send(JSON.stringify(json)); //ajax.send

我正在尝试使用mootools在节点0.10.3上建立AJAX连接。我的代码是:

客户端

var ajax = new Request({
url: '/register',
method: 'post',
onSuccess: function(responseText){
    console.log(responseText);
}
 })

 var json = {data:'data'};
 ajax.send(JSON.stringify(json));
 //ajax.send(json);
服务器

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));

app.listen(1344);

app.post('/register', function(req,res){
     //Auth.register()
     console.log(req.body);
     res.contentType('json');
     res.send({ some: JSON.stringify({response:'json'}) })
})
var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.listen(1344);

app.post('/register', function(req,res){
    console.log(req.body); //logs {ok:'OK'}
    res.contentType('json');
    res.send({ some: JSON.stringify({response:'json'}) })
})
连接正常。在客户端,我得到了响应。因此OnSucces方法中的
console.log(responseText)
正在打印正确的值

但是在服务器端,
console.log(req.body)
未定义的

我有一些疑问。mootools是否将javascript对象转换为json字符串?是否需要转换de对象?通过AJAX向节点发送信息的正确方式是什么?这是
ajax.send(JSON.stringify(JSON))好吗?还是像这样的
ajax.send(json)

我是否需要将标题指定为json

除了解决这个特殊的问题外,写一些文章或反馈来明确说明node.js的概念也不错

编辑

我将为那些面临类似问题的人发布正确的代码。Noah对解析器的看法是正确的,但还有另一个细节,解析器需要关键数据。幸运的是,我用数据作为例子

客户端

var ajax = new Request({
   url: '/register',
   method: 'post',
   onSuccess: function(responseText){
       console.log(responseText); //Logs "some": "{\"response\":\"json\"}"
   }
})
ajax.send({data:{ok:'OK'}});
服务器

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));

app.listen(1344);

app.post('/register', function(req,res){
     //Auth.register()
     console.log(req.body);
     res.contentType('json');
     res.send({ some: JSON.stringify({response:'json'}) })
})
var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.listen(1344);

app.post('/register', function(req,res){
    console.log(req.body); //logs {ok:'OK'}
    res.contentType('json');
    res.send({ some: JSON.stringify({response:'json'}) })
})

在您发布的代码中,您缺少bodyParser中间件
app.use(express.bodyParser()

添加bodyParser中间件后,您将能够访问
req.body

var express = require('express');
var app = express();
app.use(express.bodyParser()
app.use(express.static(__dirname + '/public'));
app.use(app.router)

在您发布的代码中,您缺少bodyParser中间件
app.use(express.bodyParser()

添加bodyParser中间件后,您将能够访问
req.body

var express = require('express');
var app = express();
app.use(express.bodyParser()
app.use(express.static(__dirname + '/public'));
app.use(app.router)

只是对mootools的一个评论——当你发送数据时,你不需要对json对象进行字符串化——mootools请求例外对象:谢谢,这是我一直怀疑的一点。现在它就像一个符咒一样工作。只是对mootools的一个评论——当你发送数据时,你不需要对json对象进行字符串化——mootools请求例外对象:谢谢,这就是一些我曾经怀疑过的东西,现在起作用了。