source

오류 ReferenceError: 개체ID가 정의되지 않았습니다.

itover 2023. 3. 8. 21:06
반응형

오류 ReferenceError: 개체ID가 정의되지 않았습니다.

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');

ObjectID는 글로벌 변수가 아닙니다.mongoose에 의해 정의됩니다(매뉴얼 참조).

var fileId = mongoose.Types.ObjectId();

이것을 시험해 보세요.당신 코드로 제대로 작동할 겁니다.

var ObjectId = require('mongodb').ObjectID;

아래 코드를 사용하여 ObjectId를 가져올 수 있습니다.

 const  ObjectID = require('mongodb').ObjectId;

사용하고 싶은 경우

      db.collection.deleteOne({_id:new  
      ObjectID(req.params._id)}).then(data=>{

        res.send({status:"Success",data:data});
    })
var ObjectId = require('mongodb').ObjectId;

ObjectID(대문자 D)는 사용되지 않습니다.대신 ObjectId(소문자 "d")를 사용합니다.(출처: @types/bson 패키지)

언급URL : https://stackoverflow.com/questions/22143090/error-referenceerror-objectid-is-not-defined

반응형