【发布时间】:2015-07-24 01:22:48
【问题描述】:
我在学习 node.js 中的教程时遇到问题,使用 Mongodb 数据库和 Mongo。当我在 mongo 控制台中运行我的数据库命令时,我可以看到我的数据库 nodetest1 有 3 个条目,但是当我这样做时它什么也不返回。
router.get('/', function(req, res, next) {
var db = req.db;
var collection = db.get('usercollection');
collection.find({},{},function(e,docs){
res.send(docs);
});
});
当我使用 find 方法时,这是来自 mongo 控制台的打印。
> db.usercollection.find().pretty()
{
"_id" : ObjectId("55b17a551efb190c06c38d31"),
"username" : "testuser1",
"email" : "testuser1@testdomain.com"
}
{
"_id" : ObjectId("55b17a5f1efb190c06c38d32"),
"username" : "testuser2",
"email" : "testuser2@testdomain.com"
}
{
"_id" : ObjectId("55b17a5f1efb190c06c38d33"),
"username" : "testuser3",
"email" : "testuser3@testdomain.com"
}
如果您需要更多信息,我会提供给您。我希望你能帮助我,我在这个问题上停留了 45 分钟试图找到解决方案。
更新: 这就是mongod的启动方式
mongod --dbpath "C:\Users\Victor\OneDrive\Programming\NodeJS\DatabaseSetup\data"
我与数据库的连接是在 app.js 中:
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/DatabaseSetup');
app.use(function(req,res,next){
req.db = db;
next();
});
当我在 localhost:3000/userlist 上运行我的程序时,我没有从数据库中获取任何数据,但控制台会这样写:
2015-07-24T03:13:28.127+0200 I NETWORK [initandlisten] connection accepted from 127.0.0.1:57961 #151 (6 connections now open)
【问题讨论】:
-
你是如何连接到数据库的?你在
var db = require('monk')('localhost/test')的电话是什么?您连接到的数据库与使用 shell 的数据库相同吗? -
我没有看到
var monk = require('monk')命令 -
哇哦。你是如何从外壳连接的?你只是输入
mongo就这样了吗? -
你有
router.get('/',...,你正在点击localhost:3000/userlist。我希望你已经为/userlist定义了一条路由
标签: json node.js mongodb express monk