2

我对 Node.js 还很陌生,安装它是为了试用 DrupalChat (v7dev) 模块。我相信这个问题出在 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 的帖子,当前提取的底层快速版本似乎不稳定。回滚到 2.5.9,你应该很高兴:

npm 卸载 express npm install express@2.5.9

于 2012-06-27T20:54:36.287 回答
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 回答
0

在 DrupalChat 中使用 node.js 作为后端的选项目前正在开发中。它还取决于您下载 DrupalChat 的时间(日期),因为开发代码每天都会更新,如果提交了新代码。

请在此链接上提出相同的问题 - http://drupal.org/project/issues/drupalchat?status=All&categories=All

谢谢,

暗黑

于 2012-05-15T17:55:07.817 回答