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