node.js - Showing 'db.get is not a function' NodeJs, MongoDB -


making voting app consists of following 2 models users , polls , database consisting of 2 collections users , polls.

user.js

'use strict';  var mongoose = require('mongoose'); var schema = mongoose.schema; var user = new schema({     github: {         id: string,         displayname: string,         username: string,         publicrepos: number     },     nbrclicks: {         clicks: number     } }); module.exports = mongoose.model('user', user); 

poll.js

'use strict';  var mongoose = require('mongoose'); var schema = mongoose.schema; var poll = new mongoose.schema({     title: { type: string, required: true },     creator: string,     choices: [string],     votes: [number] }); module.exports = mongoose.model('poll', poll); 

and route part

'use strict'; require('dotenv').load(); var path = process.cwd(); var clickhandler = require(path + '/app/controllers/clickhandler.server.js'); var mongo = require('mongodb'); var mongoose = require('mongoose'); var db = mongoose.createconnection(process.env.mongo_uri);  module.exports = function (app, passport) {     function isloggedin (req, res, next) {         if (req.isauthenticated()) {             return next();         } else {             res.redirect('/login');         }     }      var clickhandler = new clickhandler();     app.route('/').get(isloggedin, function (req, res) {         //console.log(display-name.profile-value);         res.render(path + '/public/index.jade');     });     app.route('/polls').get(function(req, res) {          var polls = db.get('polls');         console.log(polls);         res.render(path + '/public/polls.jade');     }) 

this error being thrown

typeerror: db.get not function @ /home/ubuntu/workspace/app/routes/index.js:39:22 @ layer.handle [as handle_request] (/home/ubuntu/workspace/node_modules/express/lib/router/layer.js:95:5) @ next (/home/ubuntu/workspace/node_modules/express/lib/router/route.js:131:13) @ route.dispatch (/home/ubuntu/workspace/node_modules/express/lib/router/route.js:112:3) @ layer.handle [as handle_request] (/home/ubuntu/workspace/node_modules/express/lib/router/layer.js:95:5) @ /home/ubuntu/workspace/node_modules/express/lib/router/index.js:277:22 @ function.process_params (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:330:12) @ next (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:271:10) @ sessionstrategy.strategy.pass (/home/ubuntu/workspace/node_modules/passport/lib/middleware/authenticate.js:325:9) @ sessionstrategy.authenticate (/home/ubuntu/workspace/node_modules/passport/lib/strategies/session.js:71:10) @ attempt (/home/ubuntu/workspace/node_modules/passport/lib/middleware/authenticate.js:348:16) @ authenticate (/home/ubuntu/workspace/node_modules/passport/lib/middleware/authenticate.js:349:7) @ layer.handle [as handle_request] (/home/ubuntu/workspace/node_modules/express/lib/router/layer.js:95:5) @ trim_prefix (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:312:13) @ /home/ubuntu/workspace/node_modules/express/lib/router/index.js:280:7 @ function.process_params (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:330:12) @ next (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:271:10) @ initialize (/home/ubuntu/workspace/node_modules/passport/lib/middleware/initialize.js:53:5) @ layer.handle [as handle_request] (/home/ubuntu/workspace/node_modules/express/lib/router/layer.js:95:5) @ trim_prefix (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:312:13) @ /home/ubuntu/workspace/node_modules/express/lib/router/index.js:280:7 @ function.process_params (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:330:12) 

first need import poll route file.

var poll = require('./path_to_poll/poll'); 

then @numbers1311407 has described, if want return saved poll documents try:

poll.find(function (err, polls) {   if (err) return console.error(err);   console.log(polls); }) 

edit:

more information on module.exports can found here


Comments