我能夠通過我的nodejs api連接到mongodb,但由於某些原因數據未返回。當我查詢從控制檯MongoDB的,這裏是我得到:Mongodb數據不會返回到nodejs api
MongoDB Enterprise > db.patients.find();
{ "_id" : ObjectId("58c9a5dd1eb8c7c1c68778ca"), "FName" : "n", "LName" : "ri", "Email" : "[email protected]", "phone" : "1234567890" }
這裏是從的NodeJS代碼:
app.get('/api/patients',function(req,res){
Patient.getPatients(function(err,patients){
if(err){
throw err;
}
console.log(patients.length);
res.json(patients);
});
});
,這是getPatients方法:
var Patient = module.exports = mongoose.model('patient',patientSchema);
// get patients
module.exports.getPatients = function(callback,limit){
Patient.find(callback);
}
但瀏覽器總是顯示「[]」並且沒有數據。當我在API中查看數組的長度(console.log(patients.length))時,我得到0.不知道爲什麼數據沒有返回。 有人可以指出我可能是什麼問題?
更新基於建議
,我沒有以下更改。我創建了2個集合以確保集合存在。所以我有病人和病人收藏。
MongoDB Enterprise > db.patient.find();
{ "_id" : ObjectId("58cfe4551eb8c7c1c68778cc"), "FName" : "V", "LName" : "K", "Email" : "[email protected]", "phone" : "1234567890" }
{ "_id" : ObjectId("58cfe4601eb8c7c1c68778cd"), "FName" : "V1", "LName" : "K1", "Email" : "[email protected]", "phone" : "1234567890" }
MongoDB Enterprise > db.patients.find();
{ "_id" : ObjectId("58cfe42d1eb8c7c1c68778cb"), "FName" : "V", "LName" : "K", "Email" : "[email protected]", "phone" : "1234567890" }
下面是從文件的NodeJS代碼:
var mongoose = require('mongoose');
var patientSchema = mongoose.Schema({
FName: {
type : String
},
LName: {
type : String
},
Email: {
type : String
},
phone: {
type : String
},
},
{collection : 'patient'});
var Patient = module.exports = mongoose.model('patient',patientSchema);
// get patients
module.exports.getPatients = function(callback,limit){
console.log('test2');
Patient.find({}, function(err, patients) {
if (err) throw err;
// object of all the users
console.log(patients.length);
});
}
當我運行這段代碼,它打印「測試2」和「0」但對我來說沒有實際效果。有人可以幫忙嗎?
架構在我的更新中定義和共享。請檢查.. – DevHelp
你可以推你的代碼到github,我可以克隆它並解決問題..? –
https://github.com/justdev123/Mean - >它可能是一個大項目,但相關的文件是1)src \ models \ patient.js 2)app.js – DevHelp