【问题标题】:mongojs driver not connecting to mongodbmongojs 驱动程序未连接到 mongodb
【发布时间】:2018-06-30 15:06:10
【问题描述】:

我一直在尝试使用 mongojs 包连接到我的本地 mongodb,但它根本没有连接。我的 mongo 服务在 http://127.0.0.1:27017/ 上运行,下面是我的代码:

    var express = require('express');
var app  = express();
var bodyParser = require('body-parser');
var mongo= require('mongojs');
var db=mongo('catalog',['products']);

app.use(bodyParser.json);
//adding our first route  name 
db.on('connect', function () {
    console.log('database connected')
})
app.get('/',function(req,res){
    res.send('It Worked');
});
app.get('/products',(req,res)=>{
    db.products.find(function (err,docs) {
        if (err) {
            res.json(err)
        }else{
            res.json(docs)
        }
    })
});

如果连接已建立但没有显示任何内容,我已将连接事件设置为日志。如果它根本不起作用,我可以使用 mongoose 或其他一些包吗?

【问题讨论】:

  • mongo 只是一个变量,除了我像你说的那样改变了它,但它仍然没有连接
  • 是的,我的错。您的数据库密码保护不正确吗?
  • 不,它没有任何密码。是否有任何东西阻塞了我的快速服务器上连接到数据库的通道?我的意思是我可以轻松地在终端上输入 mongo,它会连接到 db 并进行交互,但这里会出现问题
  • mongojs 不会触发 connect function,直到您向集合发出第一个请求。我尝试过这个。向您的收藏提出请求,on('connect') 将触发。或者在您的情况下,在浏览器中转到/products,您可以在终端中看到database connected 登录。
  • 哦,你是对的。最后一天它连接了 10 分钟,然后发生了同样的问题。这可能是问题所在。没有更好的方法来请求而不是浏览器。很抱歉问了这么多,但是您对浏览器的要求是什么,我使用了localhost:27017/catalog 甚至localhost:27017 并且无法访问。它很奇怪,最后一天相同的地址会给我一些 mongo http 访问错误,但现在它甚至没有加载在页面上

标签: node.js mongodb express mongojs


【解决方案1】:

mongojs 在您向集合发出第一个请求之前不会触发连接函数。向您的收藏发出请求,on('connect') 函数将触发。

或者在您的情况下,在您的浏览器中转到/products,您可以在终端中看到数据库已连接

如果您想从您的集合中请求记录,而无需在浏览器中转到 /products,那么只需在您的 app.get('/products') 之外编写查询即可。

确保添加

app.listen(3000, function() { 
  console.log('server is running');
});

最后在浏览器中转到localhost:3000/products

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多