Nodejs返回[]而不是Json
数据文件Nodejs返回[]而不是Json,json,node.js,mongodb,Json,Node.js,Mongodb,数据文件 var mongoose = require('mongoose'); var DataSchema = mongoose.Schema({ name:{ type: String, required: true }, create_date:{ type: Date, default: Date.now } }); var Data = module.exports = mongoo
var mongoose = require('mongoose');
var DataSchema = mongoose.Schema({
name:{
type: String,
required: true
},
create_date:{
type: Date,
default: Date.now
}
});
var Data = module.exports = mongoose.model('Data', DataSchema);
//Get
module.exports.getData = function(callback, limit){
Data.find(callback).limit(limit);
}
应用程序
我有点问题,因为某种原因,它没有返回JSON。mongodb中确实有数据。它现在只有name字段。我以前从未遇到过这个问题。数据库的控制台日志报告它连接良好。我甚至转储了表并重新创建,但没有成功。您有三个问题:定义
getData
的方式,调用find
的方式,以及忘记提供限制值
getData
定义为一个find
将条件作为其第一个参数。如果希望它匹配所有文档,只需使用空对象。第二个参数可以是回调函数,但是限制
不会有任何效果getData
时,您忘记为limit
提供一个值。此外,最好将回调函数作为最后一个参数var mongoose = require('mongoose');
var DataSchema = mongoose.Schema({
name:{
type: String,
required: true
},
create_date:{
type: Date,
default: Date.now
}
});
DataSchema.statics.getData = function(limit, callback) {
this.find({}).limit(limit).exec(callback);
}
module.exports = mongoose.model('Data', DataSchema);
下面是调用函数的方法:
GrabData.getData(10, function(err, Data){...});
您的标题是“返回[]而不是Json”,但是对于空数组,“[]”将是Json。实际返回的是什么?页面只是一个空数组,而不是表中的数据。即使这样,它是否至少应该返回日期呢?
find
的第一个参数必须是一个条件,而不是一个回调函数。Grab数据来自data.js文件,它是data.find({}).limit(limit.exec(callback)的顶部代码>应该可以工作。
GrabData.getData(10, function(err, Data){...});