0

以下 JSON 对象导致 CouchDB 插入 (POST) 失败并显示“无效 JSON”消息 这里的重音 ÉUTF8

  var o = JSON.stringify({"编辑器": 123});

  var httpOpts = {
      主机名:“本地主机”,
      端口:5984,
      路径:'/theDb',
      方法:'POST',
      标题:{
        '内容类型':'应用程序/json',
        '内容长度':o.length}
     }

    var req = http.request(httpOpts, function(res) {
      console.log('STATUS: ' + res.statusCode);
      console.log('HEADERS:' + JSON.stringify(res.headers));
      res.setEncoding('utf8');
      res.on('数据',函数(块){
        console.log('BODY: ' + 块);
      });
    });

    req.write(o)
    请求结束()
4

1 回答 1

0

事实证明这不是 couchDB 的错,Content-Length 需要给出字节数,而不是字符数,这是 JavaScript 的 string.length 给你的,

使用下面的函数来计算字节数解决了问题 function byteCount(s) { return encodeURI(s).split(/%..|./).length - 1; }

于 2013-09-17T21:29:07.843 回答