当提供视频文件时,Node.js崩溃了。

4

我将使用node.js和video.js插件来提供静态视频文件(.ogv和.mov)。然而,node.js会出现以下错误信息导致崩溃:

node: ../deps/uv/src/unix/stream.c:1319: uv_read_stop: Assertion `!uv__io_active(&stream->io_watcher, 4) || !(&stream->write_completed_queue == (&stream->write_completed_queue)->prev) || !(&stream->write_queue == (&stream->write_queue)->prev) || stream->shutdown_req != ((void *)0) || stream->connect_req != ((void *)0)' failed.

这是Node.js代码:

app.configure (function () {
    app.set ('views', path.join (__dirname, 'templates'));
    app.set ('view engine', 'jade');

    app.use (express.favicon (path.join (__dirname, '/img/favicon.ico')));

    app.use ('/video', express.static (path.join (__dirname, 'public')));
    app.use (express.static (path.join (__dirname, 'public'))); 

    //bodyParser, methodOverride, cookieParser and session calls here

    app.use (app.router);
});

我的node.js版本是 "v0.10.4"

目录结构:

  • /myApp
    • /myApp/public
      • /myApp/public/video

这是一个非常简单的静态文件服务。我尝试将express.static放在app.router之后,或者在favicon之上,但都没有成功。

非常感谢您的任何建议。


2
看起来可能是Node的一个bug。尝试使用最新版本的Node(0.10.8)来查看是否解决了您的问题。如果没有,请尝试删除应用程序的部分,以便您只剩下一个最小版本,该版本仍会崩溃或修复问题(在这种情况下,您可以缩小应用程序触发问题的部分)。 - robertklep
我无法重现这个问题(.mp4,57MB,Node 0.10.8在Mac OS X上),但这可能取决于您的确切应用程序设置(例如,您正在使用的其他中间件)。 - robertklep
2
打开问题跟踪 #5569 - Cheng Ping Onn
2
在下一个0.10版本中修复。 - Cheng Ping Onn
2
我不得不说,Node.js中的assert(断言)非常糟糕。有人应该将它分成单独的断言。 - kaan_a
显示剩余3条评论
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接