node.js - mongodb cryptic error process.nextTick(function() { throw err; }) ^ Error at Object.<anonymous> -
when attempting start mean app after adding mongoose , couple of mongoose schemas, i'm getting strange error.
node_modules/mongoose/node_modules/mongodb/lib/server.js:228 process.nexttick(function() { throw err; }) ^ error @ object.<anonymous> (/projects/node/flapper-news/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:42:24) @ module._compile (module.js:460:26) @ object.module._extensions..js (module.js:478:10) @ module.load (module.js:355:32) @ function.module._load (module.js:310:12) @ module.require (module.js:365:17) @ require (module.js:384:17) @ object.<anonymous> (/projects/node/flapper-news/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/index.js:2:17) @ module._compile (module.js:460:26) @ object.module._extensions..js (module.js:478:10) app.js
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieparser = require('cookie-parser'); var bodyparser = require('body-parser'); var mongoose = require('mongoose'); require('./models/posts'); require('./models/comments'); mongoose.connect('mongodb://localhost/news'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); // uncomment after placing favicon in /public //app.use(favicon(__dirname + '/public/favicon.ico')); app.use(logger('dev')); app.use(bodyparser.json()); app.use(bodyparser.urlencoded({ extended: false })); app.use(cookieparser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); app.use('/users', users); // catch 404 , forward error handler app.use(function(req, res, next) { var err = new error('not found'); err.status = 404; next(err); }); // error handlers // development error handler // print stacktrace if (app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked user app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }); module.exports = app; routes
var express = require('express'), router = express.router(), mongoose = require('mongoose'), post = mongoose.model('post'), comment= mongoose.model('comment'); /* home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'express' }); }); router.get('/posts', function(req, res, next) { post.find(function(err, posts){ if(err){ return next(err); } res.json(posts); }); }); router.post('/posts', function(req, res, next) { var post = new post(req.body); post.save(function(err, post) { if (err) { return next(err); } res.json(post); }); }); module.exports = router; schemas
var mongoose = require('mongoose'); var postschema = new mongoose.schema({ title: string, link: string, upvotes: {type: number, default: 0}, comments: [{ type: mongoose.schema.types.objectid, ref: 'comment' }] }); mongoose.model('post', postschema); var commentschema = new mongoose.schema({ body: string, author: string, upvotes: {type: number, default: 0}, post: { type: mongoose.schema.types.objectid, ref: 'post' } }); mongoose.model('comment', commentschema); i had schemas , mongoose connect call after declaring app = express() in app.js, threw different error. can spot i've gone wrong?
i hadn't created /data/db directory mongodb install. created directory , set myself owner, , works now.
Comments
Post a Comment