【发布时间】:2020-05-13 08:34:17
【问题描述】:
对于 MEAN 堆栈和编程来说非常新。我正在将 mongoDB 数据库连接到 Node/Express 后端,除了空数组之外,我无法让 mongoDB 返回任何内容。
这是我的站点模型
const mongoose = require('mongoose');
const siteSchema = mongoose.Schema({
siteId: { type: Number, required: true },
utility: { type: String, required: true},
company: { type: String, required: true},
address: {
street: String,
city: String,
state: String,
zip: String
},
contact: {
person: String,
phone: String,
cell: String,
fax: String,
email: String
},
siteType: String,
siteUse: String,
utilityStatus: String,
hazards: [{
hazardId: Number,
altAddress: {
street: String,
city: String,
state: String,
zip: String
},
locationOnSite: String,
notes: String,
hazard: String,
check: String,
trapType: String,
frequency: String,
trapSize: String,
testDue: String,
testExtendedTo: String,
installDue: String,
installExtendedTo: String,
deviceDeficiency: String,
deviceDeficiencyExtendedTo: String,
lastTest: String,
lastTestBy: String,
lastTestPass: String,
pumpedBy: String,
deviceStatus: String,
lastletterType: String,
lastLetterSent: String,
updatedBy: String,
updatedDate: String,
webfee: Number,
mailRecipients: [{
contact: String,
Company: String,
address: {
street: String,
city: String,
state: String,
zip: String
},
phone: String,
fax: String,
email: String
}]
}]
});
module.exports = mongoose.model('Site', siteSchema);
这是我的 sites.js 路由
const express = require('express');
const Site = require('../models/site');
const router = express.Router();
router.get("", (req, res, next) => {
const siteQuery = Site.find();
console.log(siteQuery);
let fetchedSites;
siteQuery.then(documents => {
fetchedSites = documents;
return Site.count();
})
.then(count => {
res.status(200).json({
message: 'Filler',
sites: fetchedSites,
siteCount: count
});
});
});
module.exports = router;
我已成功连接到数据库,但这是我得到的唯一输出
{"message":"Filler","sites":[],"siteCount":0}
当我 console.log(siteQuery) 打印 mongoose Query 对象时。
任何帮助将不胜感激
【问题讨论】:
-
那么当你打印了
console.log(siteQuery),它是打印[]吗?正在连接到正确的数据库吗? -
您确定现有数据库中的此集合中有文档吗?
-
我编辑了我的问题以显示在我登录 siteQuery 时打印到控制台的内容,是的,数据库中有文档。我可以去指南针和在线门户网站,从那些地方查询文件没有问题。