莫吉托不承认护照js

时间:2012-09-12 19:33:55

标签: passport.js mojito

我正在尝试通过以下方式使用带有Mojito的passportjs:

1)安装Node JS和Mojito后

2)创建了一个Mojito应用

3)创建了一个Mojito

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'

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

两件事:

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

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