猫鼬 - 在 Multer 中 FindOne()

凤凰网

我将 formData 发送到我的快递应用程序,如下所示:

itemFactory.saveItem = function(item, callback){

    var formData = new FormData();

    for(var i = 0; i < item.photos.length; i++){
        formData.append('photos', item.photos[i]);
    }       
    for(var key in item){
        formData.append(key, item[key])     
    }

    return $http.post('/api/item/', formData, {
        transformRequest: angular.identity,
        headers: { 'Content-Type': undefined }
    }).success(callback);

};

我正在将一个新项目保存到我的 mongoose 数据库中。现在一切正常。但是我想使用 mongoose 检测重复项findOne(),而不仅仅是让 mongoose 处理在写入数据库时​​检测是否存在重复键。因为我的图像在此阶段无论是否存在重复键都会上传。因为它只检测到重复save()

现在的问题是,在我的 Express 应用程序中,当我使用时findOne(),Multer() 尚未解码我的 formData。前任:

router.post('/item', function(req, res){
    Vehicle.findOne({ id: String(req.body.id) }, function(error, item){

        var storage = multer.diskStorage({...})
        var upload = multer({
                         storage: storage
                     }).any();

        upload(req, res, function(error){
            //formData is only available here via req.body
            //and not at findOne() stage.
        });

    });
});

我无法在上传中执行 findOne ,因为无论如何都会上传文件,然后只检测重复项。

我尝试了另一个multer().any()函数来在 之后获取 formData.post()但这似乎不起作用。我不认为我可以这样做:

var detectItem = multer().any()
detectItem(req, res, function(){

    Vehicle.findOne({ id: String(req.body.id) }, function(error, item){

        var storage = multer.diskStorage({...})
        var upload = multer({
                         storage: storage
                     }).any();

        upload(req, res, function(error){
            //formData is only available here via req.body
            //and not at findOne() stage.
        });

})

我似乎不喜欢在 multer 函数中使用 multer 函数。

有什么建议吗?

公里数

您可以使用fileFilter选项来控制接受哪些文件。

它可能是这样的:

function filFilter (req, file, cb) {
    Vehicle
        .findOne({ id: req.body.id })
        .then(item => {
            cb(null, !item); // Skip if item exists (passing false skips file)
        })
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

了解猫鼬findOne()。remove()

来自分类Dev

mongoDB中猫鼬的位置

来自分类Dev

猫鼬JS findOne总是返回null

来自分类Dev

猫鼬用多个参数搜索FindOne

来自分类Dev

猫鼬findOne()调用未保存且输出无错误

来自分类Dev

猫鼬findOne未完成

来自分类Dev

猫鼬中的嵌套模式

来自分类Dev

节点,在一个集合中的猫鼬“ findOne”在另一个集合的“查找”中

来自分类Dev

使用findOne然后使用save()替换文档,猫鼬

来自分类Dev

猫鼬findOne与“要么或”查询

来自分类Dev

猫鼬在模型上的findOne是否返回承诺?

来自分类Dev

猫鼬findOne后lwip.open不起作用

来自分类Dev

如何在猫鼬中查询findOne(),以便获得满足特定条件的文档数组子集?

来自分类Dev

猫鼬查询FindOne与数组

来自分类Dev

如何在findOne中过滤猫鼬中的嵌套数组而无需嵌套对象

来自分类Dev

猫鼬如何通过findOne在文档中获取嵌套对象

来自分类Dev

猫鼬findOne()不是函数

来自分类Dev

猫鼬FindOne-仅返回符合条件的字段

来自分类Dev

猫鼬findOne返回未定义

来自分类Dev

了解猫鼬findOne()。remove()

来自分类Dev

findOne()返回的确切结果是猫鼬

来自分类Dev

findOne不适用于猫鼬

来自分类Dev

猫鼬findOne不返回任何东西

来自分类Dev

具有多个参数的猫鼬 findOne 不起作用

来自分类Dev

从猫鼬 findOne 动态添加新属性:值到模型

来自分类Dev

猫鼬 findOne 不是函数

来自分类Dev

事务中的猫鼬 findOne():未捕获的类型错误:无法读取未定义的属性“$elemMatch”

来自分类Dev

猫鼬 findOne 不返回任何东西

来自分类Dev

<Model>.findOne() 在猫鼬中,不起作用

Related 相关文章

热门标签

归档