1

次のようにして、Mojitoでpassportjsを使用しようとしています:

1) Node JS と Mojito をインストールした後

2) Mojito アプリの作成

3) モヒートを作った

4) Mojito アプリの package.json にパスポートを依存関係として含めました

5) npm install を実行しました (アプリ ディレクトリにある node_modules ディレクトリにパスポートを取得しました)。

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 ディスパッチャがパスポート モジュールを使用して my 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

2つのこと:

  • passportrequiresは YUI モジュールではないため、コントローラーの配列に追加することはできません。require('passport代わりに、 )`を使用して、通常のノード モジュールとしてそれを要求する必要があります。

  • mojito/yui には既知の問題があり (これは YUI 3.9.0 で解決される予定です)、mojito cli からグローバルに実行されているrequire()を使用している場合、ローカル ノード モジュールが認識されません。mojito start解決策は、グローバル cli に依存してアプリケーションを起動するのではなく./node_modules/mojito/bin/mojito start、アプリ フォルダーから使用することです。

于 2013-03-11T16:47:53.180 に答える