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
No one has answered this question yet
Check out similar questions: