节点JS从文件插入数据

问题描述 投票:0回答:1

我正在尝试将数据插入到mongoDB。

当我声明数组本地化时,它起作用。

var data = [{Name : "Steven", Age: 44},{Name : "John", Age: 54}]

但是当我将此文件存储到data.jason并读取此文件时。我无法插入。

我收到此错误:[MongoError:docs参数必须为文档数组

    app.get("/insert", function(request, response) {
  fs.readFile(reqPath , 'utf8', function (err, data) {
    //Handle Error
   if(!err) {
     //Handle Success   
      console.log(data); 
     db.collection("TheData").insertMany(data, function(err, r) { console.error(err);});
     //console.log("after" +defaultUsers); 
    }else {
       //Handle Error
       console.error(err);
    }
  }) 
});

eventhoug console.log(data);的输出与上面我对它进行除法的数组相同。

node.js mongodb insert
1个回答
0
投票

此回调fs.readFile(reqPath , 'utf8', function (err, data)中的数据类型为String。您应该将输出转换为json。

当然,您还需要更改将数组写入文件的方式。并使用双引号作为关键字

data.json

[{"Name" : "Steven", "Age": 44},{"Name" : "John","Age": 54}]

更新您的代码

app.get("/insert", function (request, response) {
  fs.readFile(reqPath, 'utf8', function (err, data) {
    //Handle Error
    if (!err) {
      //Handle Success   
      console.log(data);
      data = JSON.parse(data);
      db.collection("TheData").insertMany(data, function (err, r) { console.error(err); });
      //console.log("after" +defaultUsers); 
    } else {
      //Handle Error
      console.error(err);
    }
  })
});
© www.soinside.com 2019 - 2024. All rights reserved.