gpt4 book ai didi

javascript - 无法使用带有express的mongodb调用未定义的方法 'get'

转载 作者:行者123 更新时间:2023-12-03 08:31:04 28 4
gpt4 key购买 nike

我按照教程进行操作,但不知道出了什么问题。我的cmd根本没有错误。当我打开 localhost:3000 时,我看到此错误无法调用未定义的方法“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
});
});
});

我的 Jade

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

最佳答案

有问题,您需要首先将 db 附加到 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);

关于javascript - 无法使用带有express的mongodb调用未定义的方法 'get',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33328456/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com