2016-01-13 4 views
1

Я хочу скрыть файл CSV на объект JSON Array, используя загрузку файла.CSV to 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'); 

ответ

1

Вам просто нужно, чтобы извлечь тело из запроса. bodyparserhttps://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

1

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); 
    }); 
}); 
Смежные вопросы