【问题标题】:Nowjs expressjs 3.0Nowjs expressjs 3.0
【发布时间】:2012-05-30 03:22:04
【问题描述】:

我正在尝试让 nowjs 与 expressjs 3.0alpha4 一起使用。我已将脚本添加到我的视图中,如下所示:

<script src="/nowjs/now.js"></script>

也试过了:

<script src="https://localhost/nowjs/now.js"></script>

但我得到的只是一个:

GET https://localhost/nowjs/now.js 403 (Forbidden)

有没有人让它与 expressjs 3.0 一起使用?

即使我托管 now.js 文件,我仍然会得到:Now is not defined

【问题讨论】:

  • 您的问题与nowjs 无关。这更像是一个“我的静态文件没有被 Express 提供服务”的问题。

标签: javascript node.js express nowjs-sockets


【解决方案1】:

您需要将 HTTPServer 对象传递给 now 初始化程序。 Express 3.0 不像 2.x 那样显示这个对象。

所以做一些类似的事情:

var server = http.createServer(app).listen(app.get('port'), function() {
  console.log('Express server listening on port ' + app.get('port'));
}

var everyone = require('now').initialize(server);

【讨论】:

  • 就是这样! Express 现在是一个功能。所以需要给它传递一个 https/s 服务器。谢谢
【解决方案2】:

首先检查您是否设置了静态中间件。

app.use( express.static(__dirname + '/public' ) )

其次,确保将 nowjs 目录放在 public 目录中,而 now.js 文件放在 nowjs 目录中。

【讨论】:

  • 嗯,不是这样。正如我在问题中所写,即使我托管文件 now.js(现在实际上应该自动执行此操作,因此您不必这样做),我得到:Now is not defined。我现在知道,当你需要 express 时,它实际上是一个函数而不是一个服务器,从 3.0 开始。因此,例如在 socket.io 中,您不能将 express 传递给 listen(),而必须传递 http 服务器。我现在正在查看代码,看看它在哪里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2012-08-12
  • 2012-03-19
  • 1970-01-01
相关资源
最近更新 更多