I just created a simple database on mongodb and trying to create an api using node.js to fetch data from the database. When I query the database on mongodb shell using .find() everything works fine and I get the data but I get an empty array when I do the same using an api.
Here is the code for my app.js file:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
var mongoose = require('mongoose');
var request = require('request');
User = require('./models/User');
//Connect to Mongoose
mongoose.connect("mongodb://localhost:27017/Blinc");
mongoose.Promise = global.Promise;
var db = mongoose.connection;
app.get('/',function(req, res){
res.send('Please use1 /api/books or /api/genres');
});
app.get('/api/users', function(req, res){
User.getUsers(function(err, user){
if (err) {
throw err;
console.log(err);
}
res.json(user);
console.log(user);
});
});
app.listen(3000);
console.log('Running on port 3000....');
Here is the code for my User.js file:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost:27017/Blinc');
// User Schema
var userSchema = new Schema({
email:{
type: String,
required: true
},
username:{
type: String,
required: true
},
password:{
type: String,
required: true
},
name:{
type: String,
required: false
},
phoneNo:{
type: String,
required: false
}
});
var User = module.exports = mongoose.model('User', userSchema);
// Get users
module.exports.getUsers = function(callback, limit){
User.find(callback).limit(limit);
}
My database's name is Blinc and it has one collection named User. Can someone please suggest me what is it that I am doing wrong?