使用Nodejs从客户端传递到服务器时修改的数据格式
Data format modified when passed from client to server, using Nodejs
我在使用Node.js将数据发送到服务器时遇到了一些问题。我很确定还有其他关于相同问题的主题,但我真的不知道该搜索什么来找到它…
我的应用程序非常粗糙:
- 1个包含表单的html文件
- 1 global.js,在发送表单时将数据发送到我的服务器
- 服务器端有1个data.js,处理global.js发送的查询
当我通过$.ajaxPOST将数据从客户端传递到服务器并使用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 }
);
});
});
有什么想法吗?非常感谢你的帮助,
最大
我的猜测是这是一个格式问题。。。数据由ajax调用格式化,因为您传递的是一个对象而不是JSON字符串。尝试将JSON.stringify(newData)
传递给jquery ajax。
相关文章:
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- JQuery 修改后的隐藏字段值在回发到服务器时为空
- 在角度中,创建链接中没有 # 且不修改服务器的 spa
- 当我将 JS 对象发送到 Node.js 服务器并请求返回相同的对象时,服务器会发回一个修改后的对象
- 将修改后的数据发送到服务器(带有计时器)
- 正在修改服务器端文本文件
- 如何使用单个声明修改服务器端和客户端都使用的库
- 如何定义一个函数来修改根据Ajax请求提交给服务器的数据
- 未知node.js和websockets服务器停止.谁修改了我的代码
- 使用Nodejs从客户端传递到服务器时修改的数据格式
- SSE客户端在我修改服务器时停止工作(Server Sent Event)
- 通过从客户端代码调用服务器端代码来修改UpdatePanel
- 如何获得修改图像(img)源(src)服务器端
- javascript函数可以修改在ASP.NET服务器上运行的元素吗?
- 修改服务器上的js文件并重新加载它
- Tomcat修改javascript文件无需重启服务器
- 通过javascript代码修改服务器文件
- 如何使用php函数"file_get_contents"服务器发送事件来监视服务器上文件的修改
- 如果在服务器上修改了页面,请重新加载页面
- 是否可以在传输时修改服务器回复?