节点js,请求与couchdb
问题描述:
我想发送一个PUT
请求从JavaScript
。我无法将javascript
的值发送到node js
,它给我编辑:error is Unexpected token: o at Object.parse()
。在这条线上var message = JSON.parse(req.responseText);
也许我应该提到我正在使用bodyParser。节点js,请求与couchdb
request.open("PUT", "myurl", true);
request.setRequestHeader('Content-Type', 'application/json');
request.send(JSON.stringify({message: "from javascript"}));
从node js
我想该数值发给couchDB
但我不知道怎么去从javascript
router.put('/fillMessage', function(req, res){
var request = new XMLHttpRequest();
//...
var message = req.body;
var newData = {_id: data._id, _rev: data._rev, message: "JS value goes here"};
//...
});
现在通过message
值我调试节点JS req
变量,似乎有没有json值被传递进去。没有responseText
或body
属性
答
最常见的是Unexpected token: o at Object.parse()
表示无论您试图解析的是不是JSON编码的字符串。它可能已经是一个对象,例如JSON.parse({ two : 2 })
给出了同样的错误。
JSON.parse试图打开输入一个字符串,然后解析它作为JSON,所以在
var foo = { two : 2 };
JSON.parse(foo); // throws, equivalent to JSON.parse("[object Object]")
当JSON.parse
工作这是一个好主意,检查req.responseText
是一个字符串第一和包装在try/catch块中的JSON.parse
。
谢谢我编辑了我的代码,但仍然,req变量没有传递给它的javascript值。没有.body或.responseText属性。我在javaScript中做错了什么? –