使用Node.js将数据发送到服务器时遇到了一些麻烦。我很确定还有关于同一问题的其他主题,但我真的不知道要搜索什么来找到它......
我的应用非常粗糙:
当我通过$ .ajax POST将数据从客户端传递到服务器并使用req.body检索它时,数据格式混乱:
以下是我发送的内容:
newData = { ‘body ‘ : [ { ‘key_1’ : ’stuff’ , ‘key_2’ : ’stuff’ } ] }
我得到了什么:
req.body == { ‘body[0][key_1]’ : ‘stuff’ , ‘body[0][key_2]’ : ‘stuff’ }
我的应用程序的完整代码如下:
global.js:
function sendStuff(event) {
event.preventDefault();
var newData = {'body' : ''};
var items = [{'key_1' : 'stuff', 'key_2' : 'stuff', 'key_3' : 'stuff'}];
newData.body = items;
$.ajax({
type : 'POST',
data : newData,
url : '/data/adddata',
dataType : 'JSON'
}).done(function(response) {
if (response.msg === '') {
console.log('Everything ok');
}
else {
console.log('Error:' + response.msg);
}
});
}
在服务器端,data.js:
router.post('/adddata', function(req, res) {
var db = req.db;
var collection = db.get('data');
console.log(req.body);
collection.insert(req.body, function(err, result){
res.send(
(err === null) ? { msg: '' } : { msg: err }
);
});
});
有什么想法吗? 非常感谢你的帮助,
马克西姆
答案 0 :(得分:0)
我的猜测是这是格式化问题...数据是由ajax调用格式化的,因为您传递的是对象而不是JSON字符串。尝试将JSON.stringify(newData)
传递给jquery ajax。