Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js AWS CloudSearch上载JSON:值标记不能是数组或对象_Node.js_Amazon Web Services_Amazon Cloudsearch_Aws Sdk Nodejs - Fatal编程技术网

Node.js AWS CloudSearch上载JSON:值标记不能是数组或对象

Node.js AWS CloudSearch上载JSON:值标记不能是数组或对象,node.js,amazon-web-services,amazon-cloudsearch,aws-sdk-nodejs,Node.js,Amazon Web Services,Amazon Cloudsearch,Aws Sdk Nodejs,我正在运行lambda函数(NodeJS)将一些文档上传到AWS云搜索。我一直得到以下错误 { "errorMessage": "{ [\"The value of tags cannot be a JSON array or object\"] }", "errorType": "DocumentServiceException", "stackTrace": [ "Object.extractError (/var/task/node_modules/

我正在运行lambda函数(NodeJS)将一些文档上传到AWS云搜索。我一直得到以下错误

{
    "errorMessage": "{ [\"The value of tags cannot be a JSON array or object\"] }",
    "errorType": "DocumentServiceException",
    "stackTrace": [
        "Object.extractError (/var/task/node_modules/aws-sdk/lib/protocol/json.js:48:27)",
        "Request.extractError (/var/task/node_modules/aws-sdk/lib/protocol/rest_json.js:37:8)",
        "Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:105:20)",
        "Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:77:10)",
        "Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:678:14)",
        "Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)",
        "AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)",
        "/var/task/node_modules/aws-sdk/lib/state_machine.js:26:10",
        "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)",
        "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:680:12)"
    ]
}
这是我用来上传数据的代码

exports.handle = function(e, ctx, cb) {
  ctx.callbackWaitsForEmptyEventLoop = false;
  var documentsBatch = e.data;
  var params = {
    contentType: 'application/json',
    documents: JSON.stringify(documentsBatch)
  };
  var req = cloudsearchdomain.uploadDocuments(params, function(err, data) {
    if (err){
      // an error occurred
      cb(err, null);
    }else{
      // successful response
    }
  });
  req.send();
}
我的字符串化数据在记录时看起来与

[
{
“类型”:“添加”,
“id”:“FpgAxxxxKrM4utxosPy23--KhO6FgvxK”,
“字段”:{
“userid”:“FpgARscKlxaxutxosPy23”,
“故事ID”:“-khxbp7reek”,

“description”:“xyz问题在于另一个JSON对象具有字段以外的附加JSON属性。一旦我能够找到并删除它,一切都正常了。应该有一个相同的linter,或者SDK应该抛出一个更好的异常

exports.handle = function(e, ctx, cb) {
  ctx.callbackWaitsForEmptyEventLoop = false;
  var documentsBatch = e.data;
  var params = {
    contentType: 'application/json',
    documents: JSON.stringify(documentsBatch)
  };
  var req = cloudsearchdomain.uploadDocuments(params, function(err, data) {
    if (err){
      // an error occurred
      cb(err, null);
    }else{
      // successful response
    }
  });
  req.send();
}