CSV到JSON使用file upload

我想通过file upload将CSV文件转换为JSON数组对象。

我曾尝试过Muller,

module.exports = function(express, app, upload){ var router = express.Router(); var util = require('util'); router.get('/',function(req,res){ res.send(200); }); router.post('/csv', upload,function(req,res){ //How to get file contents ? res.send('/dashboard'); }); app.use('/upload',router); }; 

在哪里上传,

 var upload = multer({ storage: storage }).single('csvfile'); 

您只需要从请求中提取一个正文。 bodyparser https://github.com/expressjs/body-parser是做这个的好工具。

首先,安装并要求图书馆。 然后,创build一个text bodyparser(可能最适合用于csv用例)并将其注册为中间件:

 app.use(bodyParser.json()) // app being 'var app = express()' server 

最后:

 router.post('/csv', upload,function(req,res){ console.log(req.body) // req.body should be populated by request body res.send('/dashboard'); }); 

但请注意, bodyparser不适合多部分机构。 如果是这种情况,请使用https://github.com/felixge/node-formidable

周杰伦。

如果你有小的csv文件,你可以使用内存进行分割。

 var upload = multer({ inMemory: true}).single('csvfile'); 

在此之后,您必须转换csv

 router.post('/csv', upload, function(req,res){ var csvString = req.files.csvfile.buffer.toString() converter.fromString(csvString, function(err,result){ if(err)return res.send("ERR") res.send(result); }); });