错误 ReferenceError: ObjectID 未定义
Posted
技术标签:
【中文标题】错误 ReferenceError: ObjectID 未定义【英文标题】:error ReferenceError: ObjectID is not defined 【发布时间】:2014-04-04 06:49:27 【问题描述】:我想用 GridJS 上传图片。我为此使用https://www.npmjs.org/package/gridfs-stream。它给了我error
ReferenceError: ObjectID is not defined
。
我是初学者,所以不知道发生了什么。
如何解决这个错误?
var Grid = require('gridfs-stream');
var conn = mongoose.createConnection('localhost', 'Test', 27017);
var gfs = Grid(conn.db, mongoose);
var fileId = new ObjectID(uniqId);
var fileType = req.header('X-File-Type');
var fileName = req.header('X-File-Name');
var uniqId = req.param('uniqId', '112211112111');
console.log('upload start');
// streaming to gridfs
var writestream = gfs.createWriteStream(fileId, [ "content_type": fileType, "metadata": "fileName": fileName, "uploaded_at": (new Date()).toString() ]);
fs.createReadStream('/some/path').pipe(writestream);
// streaming from gridfs
var readstream = gfs.createReadStream(fileId, [ "content_type": fileType, "metadata": "fileName": fileName, "uploaded_at": (new Date()).toString() ]);
//error handling, e.g. file does not exist
readstream.on('error', function (err)
console.log('An error occurred!', err);
throw err;
);
readstream.pipe(response);
console.log('upload done');
【问题讨论】:
这是什么 var fileId = new ObjectID(uniqId);我在代码中没有看到任何 uniqId ohhh....我后来添加了它....错误也得到了解决....但是一个新的错误说TypeError: undefined is not a function
【参考方案1】:
不是直接的解决方案,而是一个小错字浪费了我 10 分钟的时间:
var ObjectId = require('mongodb').ObjectID;
我用小 d 声明了一个变量 ObjectId,但是在使用该变量时,我尝试使用大写 D 的 ObjectID。
【讨论】:
require('mongodb').ObjectID
现在已弃用。应该使用require('mongodb').ObjectId
;【参考方案2】:
ObjectID
不是全局变量,它是由猫鼬定义的(见documentation):
var fileId = mongoose.Types.ObjectId();
【讨论】:
【参考方案3】:试试这个。它会在您的代码中正常工作。
var ObjectId = require('mongodb').ObjectID;
【讨论】:
【参考方案4】:您可以使用下面的代码来获取 ObjectId
const ObjectID = require('mongodb').ObjectId;
如果你想使用它
db.collection.deleteOne(_id:new
ObjectID(req.params._id)).then(data=>
res.send(status:"Success",data:data);
)
【讨论】:
【参考方案5】:var ObjectId = require('mongodb').ObjectId;
ObjectID(大写“D”)已弃用。请改用 ObjectId(小写“d”)。 (来源:@types/bson 包
【讨论】:
以上是关于错误 ReferenceError: ObjectID 未定义的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的 ReferenceError:全局未在 Object../node_modules/fbjs/lib/setImmediate.js 中定义
ReferenceError: weakly-referenced object no longer exists Python kafka
Angular - 未捕获的 ReferenceError:$ 未在 Object../src/assets/dist/js/pages/dashboard2.js 中定义
一旦我设置 nodeIntegration:false -> "Uncaught ReferenceError: require is not defined at Object.ur