2

私はNode.jsにかなり慣れていないので、DrupalChat(v7dev)モジュールを試すためにNode.jsをインストールします。チャットモジュールの設定が読み込まれる段階を超えているため、この問題はnode.jsまたはexpressのいずれかにあると思います。チャットサーバーを起動しようとすると、次の出力に直面します

Extension loaded: drupalchat_nodejs.server.extension.js
Started http server.
   info  - socket.io started

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
TypeError: Cannot read property 'url' of undefined
    at Function.handle (/usr/local/lib/node_modules/npm/node_modules/express/node_modules/connect/lib/proto.js:105:18)
    at Server.app (/usr/local/lib/node_modules/npm/node_modules/express/node_modules/connect/lib/connect.js:60:31)
    at Server.serverListening (/usr/local/lib/node_modules/npm/node_modules/socket.io/node_modules/policyfile/lib/server.js:136:16)
    at Server.g (events.js:154:14)
    at Server.emit (events.js:64:17)
    at Array.1 (net.js:710:10)
    at EventEmitter._tickCallback (node.js:192:40)

Expressをインストールすると、「.... bugs['web']はおそらくbugs['url']」のような警告が表示されたのを覚えています(プレフィックスを思い出せません)

それで、サーバーが(API?)変数「url」を読み取ろうとしているのに、現在は「web」を読み取ろうとしているのでしょうか。

すべてのモジュールを最新の状態にしていますが、ダウングレードする必要がありますか?または、別のモジュールを使用してこれを回避する方法はありますか?

編集:201行目は最後の行です(authenticatedClients [authData.authToken];)を削除します...適切なコンテキストのために関数全体に追加しました

var authenticateClientCallback = function (error, response, body) {
  if (error) {
    console.log("Error with authenticate client request:", error);
    return;
  }
  if (response.statusCode == 404) {
    if (settings.debug) {
      console.log('Backend authentication url not found, full response info:', response);
    }
    else {
      console.log('Backend authentication url not found.');
    }
    return;
  }

  var authData = false;
  try {
    authData = JSON.parse(body);
  }
  catch (exception) {
    console.log('Failed to parse authentication message:', exception);
    if (settings.debug) {
      console.log('Failed message string: ' + body);
    }
    return;
  }
  if (!checkServiceKey(authData.serviceKey)) {
    console.log('Invalid service key "', authData.serviceKey, '"');
    return;
  }
  if (authData.nodejsValidAuthToken) {
    if (settings.debug) {
      console.log('Valid login for uid "', authData.uid, '"');
    }
    setupClientConnection(authData.clientId, authData, authData.contentTokens);
    authenticatedClients[authData.authToken] = authData;
  }
  else {
    console.log('Invalid login for uid "', authData.uid, '"');
    delete authenticatedClients[authData.authToken];
  }
}
4

4 に答える 4

1

@thesnufkin の投稿によると、現在プルされている基礎となる Express バージョンは安定していないようです。2.5.9 にロールバックすると、準備完了です。

npm アンインストール エクスプレス npm インストール エクスプレス@2.5.9

于 2012-06-27T20:54:36.287 に答える
0

DrupalChatのバックエンドとしてnode.jsを使用するオプションは、現在開発中です。また、新しいコードがコミットされている場合、開発コードは毎日更新されるため、いつ(日付)にDrupalChatをダウンロードしたかによっても異なります。

このリンクで同じ問題を提起してください-http://drupal.org/project/issues/drupalchat ?status=All&categories=All 。

ありがとう、

darklrd

于 2012-05-15T17:55:07.817 に答える
0

リクエスト通り、

drupal の v7 チャット モジュールは安定していません。本番環境では使用しないでください。

バグをチェック: http://drupal.org/project/issues/drupalchat?status=All&categories=All

フォーラムを確認してください: http://drupalchat7.botskool.co.in/?q=forum

まだ新しいメンテナを探しています: 「新しいメンテナを募集しています - 興味があれば beejeebus に連絡してください!」.

于 2012-04-16T15:58:36.620 に答える
0

nodejs モジュールにはこの問題があるため、特に drupalchat サーバーに関連しているとは思いません。その問題は次のとおりです。http://drupal.org/node/1537702

于 2012-04-18T10:20:12.947 に答える