猫鼬和 q 承诺

2024-02-23

我正在使用 mongoose/q Promise 框架示例here https://gist.github.com/2660323,但在尝试使用 findOne 时,nfbind 似乎存在一些问题,主要是因为来自Q https://github.com/kriskowal/q框架似乎与要点不符。

My code:

var mongoose = require('mongoose');
var Q = require('q');

var user_schema = mongoose.Schema({username:String, last_touched:Date, app_ids:[String]});
var user = mongoose.model('user', user_schema);

exports.user = user;
exports.user.find = Q.nfbind(user.find);
exports.user.findOne = Q.nfbind(user.findOne);

如果我打电话user.findOne({username:'test'}).then(function(err, user) { ... },用户始终是未定义的。如果我删除导出并使用带有回调的非承诺版本,我就会得到用户。我缺少一些特殊的魔法,但是在查看了代码实现、Q github 上的示例以及 mongoose 演示之后……没有什么真正跳出来的。关于我如何制作的任何想法findOne与 Q 一起工作?

我也尝试过设置nfbind在源代码中而不是在模块中起作用,但无济于事。


因为您要绑定的方法是user对象,你需要bind在将它们传递给之前将它们传递给该对象nfbind所以这样this调用时指针被保留。

这种方法对我有用:

exports.user.find = Q.nfbind(user.find.bind(user));
exports.user.findOne = Q.nfbind(user.findOne.bind(user));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

猫鼬和 q 承诺 的相关文章

随机推荐

  • 属性与实例变量[重复]

    这个问题在这里已经有答案了 可能的重复 Objective c cocoa cocoa touch 中的 实例变量 和 属性 之间有区别吗 https stackoverflow com questions 843632 is there
  • 如何为 asp.net 身份创建安全标记值 (IUserSecurityStampStore)

    在我的 MVC 5 应用程序中 我必须手动创建安全标记值 身份团队当前的实现似乎使用了指南 Guid NewGuid ToString D 我自己创建一个新的 Guid 来用作新的安全标记值是否安全 或者这是否会在将来的 ASP NET 身
  • Mongo PHP 驱动程序 1.2.10 与 MAMP

    我正在尝试让最新的 Mongo 驱动程序与 OS X 10 5 8 上的 MAMP 1 9 6 一起使用 我从源代码成功构建了它 因为似乎没有预编译版本 将其包含到正确的目录中并重新启动了 apache 但 PHP 无法识别该扩展名 我之前
  • CSS:发光文本,发光非常宽和高

    几天以来我一直在研究 box shadow 和 text shadow 我正在努力获得以下效果 我想要从文字中散发出光芒 a 一度盘旋 很简单 这应该很容易 因为我探索了使用文本阴影 好的 但它适用于小发光 我的意思是 一旦发光较大 由于其
  • Eclipse 在接口方法签名中生成无用的“公共抽象”修饰符

    在使用 Eclipse 重构工具提取方法时 有没有办法阻止生成无用的内容public abstract接口方法签名中的修饰符 谢谢阿列克谢 这听起来像是一个 Eclipse 错误 但它有一个解决方法 该错误自 2004 年 8 月 9 日起
  • CFHTTPMessageAddAuthentication 无法向请求添加身份验证数据

    我正在尝试扩展功能SocketRocket https github com square SocketRocket图书馆 我想添加身份验证功能 由于该库正在使用CFNetwork CFHTTPMessage API https devel
  • 如何在离线服务器上安装 npm -g

    我需要在离线服务器上安装 全局 npm 应用程序 安装普通应用程序很容易 npm install 然后打包生成的文件 手动或使用npm pack 但是 如何安装全局应用程序 具有某种安装脚本 例如forever没有互联网 npm insta
  • 在同一个 R markdown 页面中应用多列划分

    我想如图所示分割我的 Rmarkdown 文档 第一部分为一列 其他部分为两列 used onecolumn and twocolumn但每个部分都是在单个页面中创建的 有解决办法吗 This article https journals
  • 如何在jquery中获取tinymce内容?

    我正在尝试获取tinymce数据 但收到tinyMCE未定义错误 这是我的代码 function savePost console log jQuery wp tinymce editor tinyMCE getContent 请检查 Ti
  • 使用 knockout js 和 jquery ui 滑块

    我试图弄清楚knockout js是否可以很好地解决以下问题 我有多个滑块想要链接到文本框 当文本框更改时 相应的滑块必须更新为新值 反之亦然 更改滑块值或文本框时 需要调用一个函数 该函数使用所有文本框的输入来计算结果 我有我的快速但肮脏
  • 从 Google App Engine (Java) 将文件上传到 Google 云存储

    如何将文件从谷歌应用程序引擎中的servlet上传到谷歌云存储 当我这样做时 Google 云存储不知道文件的类型 即我从 HTML 表单发送的文件 编写 HTML JavaScript 和 servlet 将文件上传到云存储的正确方法是什
  • v-dialog Vuetify 的自定义位置

    我需要在页面右下角打开一个具有一定宽度和高度的 v 对话框 但是 我不明白该怎么做 V dialog总是在页面居中 我搜索了官方文档 尝试使用CSS 但无法 有任何想法吗 Note 其他提供的解决方案并不令人满意 因为它们搞乱了转换 或者我
  • 使用exist()的Cloud firestore规则是否算作读取?

    我正在存储被阻止用户的文档集合 我通过检查电子邮件是否存在于被阻止的集合中来检查请求是否来自被阻止的用户 allow read if exists databases database documents blocked request a
  • 如何将当前cygwin目录转换为windows格式

    显示我正在使用的当前目录 pwd在 Cygwin 中运行良好 This document https cygwin com cygwin ug net using effectively html正在解释如何将 cygwin 目录转换为 w
  • 存储库是单例还是静态还是都不是?

    我有一个 ASP NET 网站 它使用域驱动设计并使用存储库进行数据库操作 我想知道单例存储库和静态存储库以及每次访问都会新增的简单存储库类的优缺点是什么 此外 如果有人可以比较并指导我使用其中的哪一个 我将不胜感激 静态和单例对于存储库模
  • Jquery 验证错误放置(单选按钮)

    我正在尝试使用 Jquery 验证插件来验证我的表单 我的大多数输入元素的右侧都会出现错误消息 但单选按钮只会给我带来麻烦 如果我没有给出 div group 类的宽度 错误消息会出现在整个页面的外部 因为我假设 div 宽度是页面的 10
  • 安装 Shield LE - 错误 6058 ...在 64 位中合并 Visual C++ 10.0 CRT

    我正在尝试编译一个安装屏蔽项目 这是一个 64 位程序 我不断收到此错误 尽管它确实编译正常并安装正常 Error 16 6058 Error merging Visual C 10 0 CRT IA64 with module ID C
  • 有没有办法在 swift 中从 utf16 数组创建字符串?

    我们知道 String utf16 提供代码单元或 String unicodeScalars 提供标量 如果我们通过删除一些元素等来操作 codeunits 和 unicodeScales 有没有办法构造回结果字符串 Swift 2 1
  • 如何更改数据类型而不导致 Haskell 重新编译?

    看完一段视频后布雷特 维克多的演讲 http vimeo com 36579366 我受到启发 编写了一个快速破解程序 该程序与他在演讲中演示的开发环境有些相似 基本上 其想法是 让应用程序在一个窗口中运行 每当在源文件中保存更改时 程序就
  • 猫鼬和 q 承诺

    我正在使用 mongoose q Promise 框架示例here https gist github com 2660323 但在尝试使用 findOne 时 nfbind 似乎存在一些问题 主要是因为来自Q https github c