我正在尝试通过以下方式使用带有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模块的任何示例?
答案 0 :(得分:0)
解决方案:将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
。