Node.js 使用文件上载将CSV转换为JSON

Node.js 使用文件上载将CSV转换为JSON,node.js,npm,multer,Node.js,Npm,Multer,我想使用文件上载将CSV文件转换为JSON数组对象 我试过穆特 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,f

我想使用文件上载将CSV文件转换为JSON数组对象

我试过穆特

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
是一个很好的工具

首先,安装并需要该库。然后,创建一个
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
不适用于多部分主体。如果这是您的情况,请使用Jay之类的东西

如果你有小的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);
     }); 
});