我想使用文件上传将CSV文件转换为JSON Array对象。
我试过过多,
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');
答案 0 :(得分:2)
杰
如果你有小的csv文件,你可以使用内存进行multer。
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);
});
});
答案 1 :(得分:1)
您只需从请求中提取一个正文。 bodyparser
https://github.com/expressjs/body-parser是执行此操作的绝佳工具。
首先,安装并要求库。然后,创建一个text
bodysarser(可能最适合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