Согласно документам, если я хочу использовать свойство буфера, я должен использовать память. Мне нужно свойство буфера, чтобы я мог читать из файла и импортировать в БД. Я также хочу использовать дисковое хранилище, чтобы все загруженные файлы сохранялись где-то.
///routes
var express = require("express"),
router = express.Router(),
multer = require("multer"),
middleware = require("./middleware.js"),
storage = multer.diskStorage({
destination: function(req, file, next)
{
next(null, 'DESTINATION');
},
filename: function (req, file, next) {
next(null, "-" + Date.now());
}
}),
upload = multer({storage: storage }),
uploadDB = require('./upload.js');
router.post('/upload', [upload.single("file"), uploadDB.post], function(req, res, next) {
console.log(req.file);
});
module.exports = router;
////upload.js
var csv = require("fast-csv"),
mongoose = require("mongoose"),
Someri = require("../models/somer");
exports.post = function(req, res)
{
if(!req.file)
{
return res.status(400).send("No files were uploaded.");
}
var fisier = req.file.buffer;
console.log(req.file.buffer);
var someri = [];
csv
.fromString(fisier.data.toString(), {
headers: true,
ignoreEmpty: true
})
.on("data", function(data) {
data['_id'] = new mongoose.Types.ObjectId();
someri.push(data);
})
.on("end", function()
{
Someri.create(someri, function(err, documents)
{
if(err) {
throw(err);
}
})
res.send(someri.length + " someri au fost adaugati.");
});
}
Есть ли способ сделать это? Моей идеей было чтение из буфера файла и ввод данных, но у меня нет доступа к этому буферу, потому что я использую diskStorage.