Можно ли получить доступ к буферу файла при использовании дискового хранилища? - PullRequest
0 голосов
/ 05 января 2019

Согласно документам, если я хочу использовать свойство буфера, я должен использовать память. Мне нужно свойство буфера, чтобы я мог читать из файла и импортировать в БД. Я также хочу использовать дисковое хранилище, чтобы все загруженные файлы сохранялись где-то.

///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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...