我使用的是mongoose和mongoose-gridfs模块,不知道如何修复错误。我可以轻松地将文件添加到我的数据库中并读取它:
router.get('/:id', (req, res)=> {
if (gridfs == null) {
gridfs = require("mongoose-gridfs")({
collection: 'attachments',
model: 'Files'
});
Attachment = gridfs.model;
}
let stream = Attachment.readById(req.params["id"]);
}但是当我在delete route中使用相同的方法时:
router.delete('/:id', (req, res)=> {
if (gridfs == null) {
gridfs = require("mongoose-gridfs")({
collection: 'attachments',
model: 'Files'
});
Attachment = gridfs.model;
}
Attachment.unlinkById(req.params["id"], (err) => {
});
}抛给我一个错误TypeError:无法读取null属性'unlink‘。我做错了什么?
发布于 2017-10-04 05:05:44
当初始化变量'gridfs‘并需要' mongoose -gridfs’时,尝试传入您的mongoose连接,如下所示:
//instantiate mongoose-gridfs
var gridfs = require('mongoose-gridfs')({
collection:'attachments',
model:'Attachment',
mongooseConnection: connection
});可能还值得尝试记录req.params" id“的值,以确保您在其中确实有一个id。
还可以尝试unlink方法,而不是unlinkById,如下所示:
Attachment.unlink(<objectid>, function(error, unlinkedAttachment){
...
});https://stackoverflow.com/questions/46552883
复制相似问题