我使用的是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"]);
}
但是当我在删除路线中使用相同的方式时:
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:无法读取属性' unlink'为null。 我做错了什么?
答案 0 :(得分:0)
初始化变量' gridfs'并要求“mongoose-gridfs'尝试传递你的猫鼬连接,如下所示:
//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){
...
});