Как мне отправить только CSV-файл (JSON) на Mongodb? - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь загрузить и сохранить данные csv в mongodb, и я могу загрузить файл, но только в базе данных он показывает объект id с некоторыми двоичными данными.У меня вопрос, как отправить только csv файл данных (json) в mongodb?

server.js

var http = require('http');
var fs = require('fs')
var formidable = require('formidable');
var csv = require('fast-csv');
var Converter = require("csvtojson").Converter;
var mongodb = require('mongodb');
var url = 'mongodb://localhost:27017/CSVDATA';
var MongoClient = mongodb.MongoClient;
var data;
http.createServer(function (req, res) {
if (req.url == '/fileupload') {
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
  res.write('File uploaded'+JSON.stringify(files));
  fs.readFile(files.filetoupload.path, function (err, data) {
  if (err) throw err;
  // data will contain your file contents
  data.toString()

  MongoClient.connect(url, function (err, db) {

      if (err) {

       console.log('Unable to connect to the mongoDB server. Error:', err);

      } else {

       console.log('Connection established to', url);

       var collection = db.collection('INFORMATION');

   collection.insert({'data1':data[0],'data2':data[1]})                   

     }
    });
 });
 res.end();
});
} else {
res.writeHead(200,{'Content-Type': 'text/html'});
res.write('<form action="fileupload" method="post" enctype="multipart/form- 
data" accept=".csv">');
res.write('<input type="file" name="filetoupload"><br>');
res.write('<input type="submit">');
res.write('</form>');
return res.end();
}
}).listen(8080);

После отправки кнопки, я успешно создал БД и коллекции.Но я не могу видеть данные csv.

Кто-нибудь может подсказать, что я делаю не так?

1 Ответ

0 голосов
/ 25 апреля 2018

CSV-файл не является json, если вы хотите сохранить json в mongodb, вам нужно прочитать csv-файл в любой библиотеке, создать json и вставить в mongodb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...