使用gridfs存储桶通过heroku上传到Mongodb的文件不起作用

时间:2017-06-15 10:46:56

标签: node.js mongodb heroku gridfs gridfs-stream

当我尝试将带有heroku的文件上传到数据库时,它将无法正常工作。

如果我使用localhost,它确实有用。

当我尝试上传文件时,有人知道为什么heroku不处理我的文件?有人知道修复吗?我对Heroku不熟悉,因为我在日志中没有错误,所以我不知道出了什么问题。

以下是我的代码:

function addVideo(req, res) {
    console.log(req.files);
    User.findOne({ 'userName' : req.params.username }, function (err, user) {
        var video = new Video();
        video.sporter = user;
        video.save()
            .then(video => {
                vid = video;
                console.log(vid);
                upload(req, res, function(err) {
                    if (err)
                        handleError(req, res, 500, err);
                });
                res.status(201).json(video);
             })
            .fail(err => handleError(req, res, 500, err));
    });
}
var storage = GridFsStorage({
    gfs : gfs,
    chunkSize: 32740 ,
    filename: function (req, file, cb) {
        console.log(file);
        cb(null, vid._id);
    },
    /** With gridfs we can store additional meta-data along with the file */
    metadata: function(req, file, cb) {
        console.log(vid);
        cb(null,
            {   originalname: file.originalname,
                videoId: vid._id
            });
    },
    root: 'ctFiles' //root name for collection to store files into
});

var upload = multer({ //multer settings for single upload
    storage: storage
}).single('file');

正如您在我的代码中看到的,我创建了一个新视频,我通过我的元数据链接到该视频。它确实创建了一个新的视频模型,但它没有创建新的ctFiles.files对象。

0 个答案:

没有答案