![](/img/trans.png)
[英]Using passport-facebook without Mongoose User (No Mongo in the MEAN stack)
[英]Return collections from Mongo using a MEAN stack
我目前正在做一個小組項目。 我們正在使用MEAN堆棧創建一個簡單的Web應用程序,但是在從mongo數據庫返回數據時遇到了一些問題。
我們試圖返回存儲在mongo db(位於mongolab中)中的集合中的所有文檔,但是在檢索數據時遇到了問題。
我們在節點服務器中使用以下Mongoose代碼創建架構:
var challengeSchema = mongoose.Schema({
name: String,
description: String,
difficulty: Number,
numberOfTimesCompleted: Number,
comments: [{user: String, body: String, date: Date }]
});
var Challenge = mongoose.model('Challenge', challengeSchema);
使用此模式,一個名為“挑戰”的集合被添加到數據庫中。
盡管在添加文檔到集合中沒有任何困難,但是當我們嘗試從該集合返回所有文檔時,沒有任何返回(超時)。
這是我們當前用於查詢數據庫的代碼:
exports.getChallenges = function (req, res){
var challengeList = {};
Challenge.find(function (err, Challenge) {
if (err)
challengeList = Challenge;
console.log(Challenge);
res.send(challengeList);
});
};
我們認為該問題與以下事實有關:集合稱為“挑戰”,而我們的模型稱為“挑戰”。 在玩了一段時間的代碼后,我們無法取得太大的進步。
任何想法,我們可能做錯了什么? 我們所有人都是mongo和node的新手,覺得我們很可能會犯一個簡單的錯誤。 非常感謝!
通過閱讀Mongoose文檔,看起來mongo集合名稱將從模型名稱中得出,除非您將其作為mongoose.model
方法的第三個參數提供。
因此,在您的示例中,您可以嘗試:
var Challenge = mongoose.model('Challenge', challengeSchema, 'challenges');
該貓鼬方法的文檔在這里: http : //mongoosejs.com/docs/api.html#index_Mongoose-model
此外,您似乎沒有為mongoose.find
方法提供任何條件。 這是該API的文檔: http : //mongoosejs.com/docs/api.html#model_Model.find 。 因此,您需要類似:
Challenge.find({find_my_criteria:'here'},function (err, challenges) {
res.send(challenges);
});
……顯然,您需要根據需要用req
代替您的實際條件/標准。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.