使用文件上传将CSV转换为JSON
问题描述:
我想使用文件上传将CSV文件转换为JSON数组对象。使用文件上传将CSV转换为JSON
我已经试过multer,
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是一个很好的工具。
首先,安装并需要库。然后,创建一个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
答
Jay。
如果你有小的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);
});
});