7

データベースに加えられた変更をリアルタイムで反映するためにラチェットを使用しようとしています。プッシャー アプリ ( http://socketo.me/docs/push ) のコードを使用しました。しかし、私はそれでエラーが発生しています。

クライアント側のページを開いた瞬間:

Uncaught ReferenceError: module is not defined                    when.js:900
(anonymous function)                                              when.js:900
(anonymous function)                                              when.js:15
(anonymous function)                                              when.js:900

この後、次のように入力しました: conn.subscribe('topic'); //これはトピックをサブスクライブします。

このトピックに変更を加えると、変更が表示される場所にエラーが表示されます。

エラー 2 :

Uncaught TypeError: undefined is not a function         [VM] autobahn.min.js (124):66
(anonymous function)                                    [VM] autobahn.min.js (124):66
c._websocket.onmessage                                  [VM] autobahn.min.js (124):66

助けはありますか?

4

2 に答える 2

5

これは、ファイルを含めるに次の JavaScript を使用することで解決できる場合があります。when.js

window.define = function(factory) {
    try{ delete window.define; } catch(e){ window.define = void 0; } // IE
    window.when = factory();
};
window.define.amd = {};

次に、when.jsファイルを含めます。

于 2013-09-26T11:42:47.833 に答える
2

これは、AMD などのモジュール システムを使用せずに when.js を使用しているためです。

ドキュメントでは、 browserifyを使用してブラウザで動作するようにファイルを変換する方法について説明しています。

ブラウザー環境 (browserify 経由)

when.js は主にモジュラー環境を対象としているため、window既定ではグローバル オブジェクト (ブラウザー内) にエクスポートされません。プロジェクトで AMD または CommonJS ローダーを使用したくない場合は、browserify を使用して when.js の独自のビルドを作成できます。

  1. git clone https://github.com/cujojs/when
  2. npm install
  3. npm run browserify引き起こすbuild/when.js
    1. またはnpm run browserify-debug、when/monitor/console を有効にしてビルドする
  4. <script src="path/to/when/build/when.js"></script>
    1. whenとして利用可能になりますwindow.when
    2. window.when.fn.lift他のモジュールは、サブオブジェクト/関数として利用できますwindow.when.sequence。browserify ビルド ファイルの完全なサブ名前空間リストを参照してください
于 2014-08-19T15:12:17.143 に答える