1

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

1)安装Node JS和Mojito之后

2) 创建了一个 Mojito 应用程序

3)创建了莫吉托

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

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

6) 在控制器的 init 操作函数中(在步骤 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 模块的任何示例?

4

2 回答 2

0

这已在以下位置解决: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

于 2012-09-16T00:28:15.020 回答
0

两件事情:

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

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

于 2013-03-11T16:47:53.180 回答