我在MongoLab上有一个数据库。它有几个系列。除了一个工作以外一个集合称为“selectopts”。它有两个文件。我可以清楚地看到这两个文件。
在我的快递代码中,我有......
var db = require('mongojs');
db.connect('mongodb://xxxx:xxxx@ds053xxx.mongolab.com:53xxx/rednecks',['selectopts']);
exports.selects = function (req, res) {
db.selectopts.find(function (err, s) {
if (err) return;
res.json(s);
});
};
始终在db.selectopts.find...
出现错误, TypeError:无法调用未定义的方法'find'。这个完全相同的愚蠢简单代码适用于其他四个集合。为什么这一个系列不是从MongoLab回来的?
我完全被难倒了。
修改...
尝试db.collection('selectopts')。find(...并得到此错误......
再次编辑...
以下是MongoLab上selectopts集合中的两个文档。你看到文档有问题吗?...
编辑x 3 ...
这是正确/有效的mongo连接设置代码...
var mongojs = require('mongojs');
var db = mongojs.connect(
'xxx:xxx@ds053xxx.mongolab.com:53xxx/rednecks',
);
看主要区别? (SMFH): - /
答案 0 :(得分:1)
有时当我在SO发帖时,我没有从任何一个回复中收到确切的实际答案,但不知何故,你们总是引导我走向答案。在这种情况下,这是程序员的愚蠢。我在路由js文件顶部的代码是错误的。你可以在这篇文章的顶部看错了。我编辑并添加了正确的语法,这使得一切都工作正常。
为了消除这种类型的重复/语法/非DRY笨拙,我将mongo连接线移动到一个单独的database.js文件中,并将其放在路径文件的顶部。天才吧?!? :-D
“谢谢”x 100所有回复!你总是让我回到正轨: - )
答案 1 :(得分:0)
使用以下样式连接:
var MongoClient = require('mongodb').MongoClient;
var db;
MongoClient.connect(
'mongodb://xxxx:xxxx@ds053xxx.mongolab.com:53xxx/rednecks',
{auto_reconnect: true},
function(e, database)
{
db = database;
});
exports.selects = function (req, res) {
db.selectopts.find(function (err, s) {
if (err) return;
res.json(s);
});
};