当前位置: 首页 > 面试题库 >

猫鼬.find()方法导致请求挂起

苗康平
2023-03-14
问题内容

我已经定义了此路由,但是对它的任何请求都会卡在“待处理”中并永远运行。

当我记录代码时,我看到1后面跟着4,这意味着find方法中的代码永远不会执行

  # Calendar routes
  router.get '/calendars', (req, res) ->
    console.log '1'
    Calendar.find (err, calendars) ->
      console.log "2" + err
      console.log "3" + calendars
      res.send(err) if err
      res.json(calendars)
      return
    console.log '4'
    return

模型

mongoose = require("mongoose")

module.exports = mongoose.model("Calendar",
  name: String
)

关于这是为什么的任何想法?


问题答案:

在您致电之前mongoose.connect,您的猫鼬查询只会简单地排队。

在启动代码中添加如下代码以进行连接:

mongoose.connect('mongodb://localhost/test', function(err) {
    if (err) {
        console.err(err);
    } else {
        console.log('Connected');
    }    
});

在连接字符串中,用test数据库名称替换。



 类似资料:
  • 问题内容: 我能找到的所有带有猫鼬结果的页面都可以做到这一点: 如何从查询中返回结果,更像这样? 这样我就可以在页面上发布多个结果? 喜欢: 能做到吗? 问题答案: 您正在尝试强制执行同步范例。就是行不通。node.js是单线程的,大部分情况下- 完成io后,便产生了执行上下文。信令通过回调进行管理。这意味着您具有嵌套的回调,命名函数或流控制库,以使外观看起来更好。 https://github.

  • 问题内容: 我有一个使用名为Todo的模型的路由设置,如下所示: 但是,todos.length始终为0,因为它找不到任何结果。当我跑步时: 我确定我已连接到同一数据库。我可以在mongod控制台中看到连接。我的连接位于config / db.js文件中: 我的server.js中的连接如下: 在Mongo Shell中,我得到1个结果。我期望此结果将由find查询返回。有什么我想念的吗?我正在使

  • 问题内容: 我将一些数据存储在mongodb中,并使用js / nodejs和mongoose访问它。我可以使用.find()在数据库中找到合适的东西,这不是问题。问题是如果没有东西,我想做点其他事情。目前,这是我正在尝试的: 当我执行act.params不在尼克索引中的操作时,这些命令都不会触发。发生这种情况时,我什么都不需要控制台,但是当它确实存在时,我确实让user.nick可以很好地进行记

  • 问题内容: 我对该方法的使用感到很困惑。这是我的用法,这是错误的: 我想要实现的只是从数据库中的事务中选择具有该用户名的事务,而我只想取出方法中列出的字段。谁能指出我该如何使用该方法?谢谢。 问题答案: 该文件说,你可以像这样实现的: 猫鼬v4.0 旧的过时的API 因此,您无需执行此操作。

  • 问题内容: 我正在使用mongoose(在节点上),并且尝试通过使用Mongoose中间件在保存时向模型添加一些其他字段。 我正在考虑要添加lastmodifiedsince-date的常用情况。但是,我也想自动添加完成保存的用户的名称/配置文件链接。 我使用的护照- http://passportjs.org/这导致req.user存在, - 当然是在HTTP请求的。 谢谢 编辑 在调用嵌入式实

  • 问题内容: 最近,我开始在Node.js上将MongoDB与Mongoose结合使用。 当我将Model.find方法与条件和字段一起使用时,猫鼬无法正常工作。 这不起作用: 顺便说一句,如果我删除了’_id’部分,这确实可行! 在MongoDB Shell中,两者都可以正常工作。 问题答案: 我通过谷歌搜索解决了这个问题: