我刚刚在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的集合。 有人可以建议我,我做错了什么?