0

我已经使用 Node.js + Express + Jade 很长时间了。自从升级到节点 0.8.12 后,render( ... ) 命令在我的生产服务器上只是超时。

在这个例子中,“1”被打印到日志,但“2”不是,并且页面超时。当然,我确实有一个名为views/test.jade 的文件。而且,这再次在我的测试服务器上使用相同的代码运行良好......

console.log('1');
res.render('test');
console.log('2');

所以我将 Node.js 降级回 0.6.18(我之前使用的)并且代码再次正常工作。但是我需要更新的节点版本……我能想到的一个主要区别是,0.6.18 是通过 YUM 安装在 CentOS 上的,但我不得不自己制作 v0.8.12,因为我找不到合适的包。

这是我尝试过的:

  • 升级快递(@3.0.0rc5)和翡翠(@0.26.3)
  • 在 render() 函数中使用回调(它永远不会被调用)
  • 通过 app.set('views', absolute_path); 显式设置 views/ 目录
  • 故意使用无效的模板名称来尝试获取错误。仍然没有(没有触发回调,没有执行)
  • 哭泣

想法?

4

1 回答 1

1

确保jade已正确安装。如果渲染调用超时,则很可能意味着抛出了您未处理的错误。您可以像这样检查抛出的错误:

try {
   res.render('test');
}
catch (e) {
   console.log(e);
}

由于render不依赖太多,我猜该jade模块没有正确安装。确保jade在您的node_modules\express文件夹中看到。如果没有,请尝试重新安装:

npm install express
于 2012-10-13T19:13:34.877 回答