【发布时间】:2013-12-24 18:04:00
【问题描述】:
前端
// js / jquery
var content = {
info : 'this is info',
extra : 'more info'
}
$.ajax({
type: 'POST',
url: '/tosave',
data: content
});
节点
// app.js
app.post('/tosave', function(req, res){
fs.writeFile('/saved.txt', req.body, function(err, data){})
});
这将作为[object Object] 保存到文件中。当我在通过 ajax 请求发送内容之前对内容使用 JSON.stringify() 时,我得到了相同的结果。但是,如果我在 node.js 中对其进行字符串化,它会成功保存为{"info":"this is the info","extra":"this is extra"}。
我的问题是为什么会发生这种情况?另外,我将如何在ajax请求之前将其转换为json字符串?
【问题讨论】:
-
在您的示例中,
writeFile的正确语法肯定是:fs.writeFile('/saved.txt', data, function(err){}) -
是的,我刚刚编辑了我的示例,这不是问题
-
嗯,一个对象的默认字符串表示是
[object Object]。 -
这是个问题吗?如果您希望它作为节点端的字符串,您可以在那里对其进行字符串化。似乎 node 只是识别出它是一个 json 字符串并在途中为您解码它。
-
我明白了,但是如何在没有实际数据而不是 [object Object] 的情况下将内容写入文件,这样我才能真正看到数据?
标签: javascript ajax json node.js