【问题标题】:Mojito does not recognize passport jsMojito不认护照js
【发布时间】:2012-09-12 19:33:54
【问题描述】:

我正在尝试通过执行以下操作将 passportjs 与 Mojito 一起使用:

1) 安装 Node JS 和 Mojito 后

2) 创建了一个 Mojito 应用

3) 制作了莫吉托

4) 在 Mojito 应用的 package.json 中包含护照作为依赖项

5) 运行 npm install(它将护照获取到 node_modules 目录中,该目录位于应用程序目录中)

6) 在控制器初始化操作的函数中(在步骤 3 中创建的 mojit 的 controller.server.js 中),我需要护照模块 (this.passport = require('passport')),但是 Mojito 抱怨以下错误:

/usr/local/lib/node_modules/mojito/node_modules/yui/yui-nodejs/yui-nodejs.js:1147
            throw (e || new Error(msg));
                        ^
Error: Cannot find module 'passport'

我尝试将护照添加到传递给 controller.server.js 中的 YUI.add 函数的 requires 数组中,并且根据日志,mojito 调度程序正在使用护照模块调度我的 mojit/index 的实例,但它也警告:[YUI-WARN] yui: NOT loaded: passport

关于我可能做错了什么的任何想法或在 Mojito 中使用任何非 YUI nodejs 模块的任何示例?

【问题讨论】:

标签: passport.js mojito


【解决方案1】:

这个问题已经解决了:http://developer.yahoo.com/forum/Yahoo-Mojito/Using-Passport-JS-with-Mojito/1347478967128-30d8251c-4103-49dc-b555-bec39e9ebe1d

解决方案:将 NODE_PATH 环境变量附加:./node_modules:/opt/local/lib/node:/opt/local/lib/node_modules

【讨论】:

    【解决方案2】:

    两件事:

    • passport 不是 YUI 模块,因此您不能将其添加到控制器中的 requires 数组中。相反,您需要使用 require('passport) 将其作为常规节点模块使用`

    • 在 mojito/yui 中存在一个已知问题(将通过 YUI 3.9.0 解决),如果您使用 mojito start,本地节点模块将无法通过 require() 识别,它从 mojito cli 全局运行。解决方案是不要依赖全局 cli 来启动应用程序,而是使用 app 文件夹中的 ./node_modules/mojito/bin/mojito start

    【讨论】:

      猜你喜欢
      • 2015-07-03
      • 2022-11-28
      • 2017-08-18
      • 2017-10-05
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      • 1970-01-01
      相关资源
      最近更新 更多