TypeError: Cannot read property "ObjectID" from undefined

My code looks like this. Use nodejs to upload files in webpage to do file upload, server error.

I am trying to pipe streams of files directly to Mongo. This is similar to gridform ( https://github.com/aheckmann/gridform ) - great solution for this.

node v0.12.4

mesh 0.1.7

mongodb 2.0.33

    http = require("http");
    var mongo = require('mongodb');
    var url = require("url");
    var assert = require('assert');
    var formidable = require ( 'gridform/node_modules/formidable' ); 
    var gridfsStream = require ( 'gridform/node_modules/gridfs-stream' ); 

    var Db = require('mongodb').Db;
    var Server = require('mongodb').Server;
    var MongoDb = new Db('test', new Server('localhost', 27017), {w: 1});

    var app = http.Server(function(req, res){
        MongoDb.open(function(err, db) {
            var gridform = require('gridform');
            gridform.db = db;
            gridform.mongo = mongo;
            var form = gridform();
            assert(form instanceof formidable.IncomingForm);
            console.log(formidable.IncomingForm);
            form.on('fileBegin', function (name, file) {
                console.log('mmmeta');
                file.metadata = 'so meta'
            });
            form.parse(req, function (err, fields, files) {

            });
        });
    });
    app.listen(3000);

      

Server error while implementing file upload

    /data/nodejs/node_modules/gridform/node_modules/gridfs-stream/lib/writestream.js:44
    this.id = new grid.mongo.BSONPure.ObjectID;
                                 ^
TypeError: Cannot read property 'ObjectID' of undefined
    at Stream.GridWriteStream (/data/nodejs/node_modules/gridform/node_modules/gridfs-stream/lib/writestream.js:44:38)
    at Grid.createWriteStream (/data/nodejs/node_modules/gridform/node_modules/gridfs-stream/lib/index.js:41:10)
    at IncomingForm.onPart (/data/nodejs/node_modules/gridform/lib/index.js:72:30)
    at MultipartParser.parser.onHeadersEnd (/data/nodejs/node_modules/gridform/node_modules/formidable/lib/incoming_form.js:393:10)
    at callback (/data/nodejs/node_modules/gridform/node_modules/formidable/lib/multipart_parser.js:102:31)
    at MultipartParser.write (/data/nodejs/node_modules/gridform/node_modules/formidable/lib/multipart_parser.js:208:9)
    at IncomingForm.write (/data/nodejs/node_modules/gridform/node_modules/formidable/lib/incoming_form.js:141:34)
    at IncomingMessage.<anonymous> (/data/nodejs/node_modules/gridform/node_modules/formidable/lib/incoming_form.js:110:12)
    at IncomingMessage.emit (events.js:107:17)
    at IncomingMessage.Readable.read (_stream_readable.js:373:10)

      

+3


source to share





All Articles