nodeJS вставить данные из файла - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь вставить данные в MongoDB.

, когда я объявляю массив локально, он работает.

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

но когда я сохраняю этот файл в data.json и читаю этот файл. Я не могу вставить.

Я получил эту ошибку:

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);
    }
  }) 
});

, хотя вывод данных так же, как если бы я объявил это выше.

1 Ответ

3 голосов
/ 03 марта 2020

тип данных в этом обратном вызове fs.readFile(reqPath , 'utf8', function (err, data) - String. Вы должны преобразовать свой выходной файл в json.

. Конечно, вам также нужно изменить способ записи массива в файл. И используйте двойные кавычки для ключей

данных. 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);
    }
  })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...