我正在使用Node.js與MongoDB和Mongoose進行數據庫連接。會發生的是,如果數據庫中沒有值,那麼回調函數會呈現後續頁面(雖然當然沒有顯示模板期望看到值的地方),但是如果它們是值,我將面臨Press any key to continue...
在命令行中。當MongoDB非空時NodeJS站點遇到服務器錯誤
下面是處理該請求一個網頁,應該顯示集合
// GET request for the Blog page.
exports.g_blog = function (req, res) {
var image = req.Image;
image.find(function (err, docs) {
if (err) return console.error(err);
console.log(docs); // Prints the value we save initially
res.render('blog', {
title : 'Blog',
images: docs
});
});
};
在上面的代碼中所有值的路線,Image
是一個模式文件中定義的模型的實例。 該定義如下
var ImageSchema = new Schema({
path : String
});
var Image = mongoose.model('Image', ImageSchema);
所以在GET
請求調用image.find
應收集,存儲在變量docs
在返回所有的值,我證實,做到了這一點在通過console.log(docs)
函數調用的代碼,其中顯示了一個空數組或一個填充數組。在人口衆多的情況下,我遇到了上述消息。在一個空數組中,輸出以下GET請求信息。
下面是我在數據庫查詢的結果集爲空時看到的一個示例。
這裏是一旦我增加了一些價值會發生什麼事的例子。
在此期間,鉻爲約3秒掛機而發生這種情況,然後顯示一個ERR_CONNECTION_REFUSED
消息。此外,按提示時按任意鍵只是關閉終端選項卡。
任何幫助?
什麼是'img_collection'改變?在你列出的代碼中沒有提及任何地方,所以你顯然在做別的事情。這不可能是'.find()'產生的問題,因爲你真的記錄了它,但是所有賬戶的'res.render()'調用並不會發生。所以更可能出現問題,和/或前面提到的變量。 –
@BlakesSeven'img_collection'是一個變量,我試圖從全局上下文中保存'docs'值。它沒有工作(並且感覺像不好的練習),所以我放棄了這個想法。它在我的原始源代碼中也被移除了,並且問題仍然以完全相同的行爲持續存在。我更新了我的問題以反映這一點。 – James
簡而言之,您可以給我們背景故事和屏幕截圖,但實際上我們並不需要它們。對發生的事情給出一個清晰和可重複的案例。這給了人們一些合作的東西,並且常常會讓人們誤解實際問題的錯誤概念。您沒有顯示所有重要的代碼。還有像*「試圖保存」的語句*?你什麼意思?我們在這裏看到的只是一個'.find()'請求,沒有理由相信其他任何東西都在範圍之內。給我們一個可重現的案例。所提供的代碼應該在'未定義的變量'上出錯。講清楚。說實話。 –