2015-10-25 66 views
0

我遵循教程並且不知道什麼是錯誤的。我的cmd根本沒有錯誤。當我打開本地主機:3000我看到這個錯誤無法調用未定義的方法'get',無法加載我的帖子集合中的文章。不能使用mongodb調用未定義的方法'get'使用快遞

var express = require('express'); 
var router = express.Router(); 
var mongo = require('mongodb'); 
var db = require('monk')('localhost/nodeblog'); 

/* Homepage blog posts */ 
router.get('/', function(req, res, next) { 
    var db = req.db; 
    var posts = db.get('posts'); 
    console.log(posts) 
    posts.find({},{},function(err,posts){ 
    res.render('index',{ 
     "posts":posts 
    }); 
    }); 
}); 

我的玉

block content 
    if posts 
     each post, i in posts 
      h1=post.title 
+0

的可能的複製[類型錯誤:無法調用未定義的方法 'GET'(http://stackoverflow.com/questions/23887849/typeerror-cannot-call-method -get-of-undefined) – chridam

回答

1

有問題, 首先,您需要連接到數據庫對象REQ然後使用它。在所有路線之前放置此功能。

app.use(function(req, res, next) { 
    // open connection 
    req.db = db; 
    next(); 
}); 

then use it in route. 

var dbs = req.db; 

否則簡單的是,刪除此行並運行您的應用程序。

var db = req.db; 

完整代碼

var express = require('express'); 
var mongo = require('mongodb'); 
var db = require('monk')('localhost/nodeblog'); 

var app = express(); 

app.use(function(req, res, next) { 
    req.db = db; 
    next(); 
}); 

app.get('/', function(req, res, next) { 
    var dbPost = req.db; 
    var posts = dbPost.get('posts'); 
    console.log(posts) 
    posts.find({},{},function(err, posts){ 
    res.render('index',{ 
     posts: posts 
    }); 
    }); 
}); 

app.listen(3000); 
+0

你的完整代碼是我的index.js?我得到的應用程序沒有定義 –

+0

請重新檢查您的代碼,我已經在我的系統上放置它之前在我的系統上測試過我的代碼。確保,你已經安裝了所有的依賴關係,並通過var app = express()創建了應用程序對象。 – mabc224

+0

我得到了這個錯誤在app.use.res.render.message(C:\ wamp \ www \ node_blog \ app.js:81:13) –

相關問題