当与node.js和mongoose一起使用时,.find()返回空,但在mongo shell上返回数据

时间:2018-06-06 15:55:26

标签: node.js mongodb express

我刚刚在mongodb上创建了一个简单的数据库,并尝试使用node.js创建一个api来从数据库中获取数据。当我使用.find()查询mongodb shell上的数据库时,一切正常,我得到了数据,但是当我使用api执行相同操作时,我得到一个空数组。

以下是我的app.js文件的代码:

    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....');

以下是我的User.js文件的代码:

    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);
    }

我的数据库名称是Blinc,它有一个名为User的集合。 有人可以建议我,我做错了什么?

0 个答案:

没有答案