错误 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。它给了我errorReferenceError: 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,但是在使用该变量时,我尝试使用大写 DObjectID

【讨论】:

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

为啥我在 AngularJS 中收到错误“ReferenceError:未定义类别”?

我收到错误:fs.js:36 = primordials; ^ ReferenceError: 未定义原语