Node JS Express样板和渲染



我正在尝试通过快速样板安装节点和它的快速框架。我花了一段时间才弄清楚我需要安装Redis(顺便说一句,如果你正在制作一个样板文件,要么包含所有必需的软件,要么警告某些软件的需求——Redis从未被提及作为必需的),并绕过server.js文件。

现在我仍然是一个陌生人,我可以建立一个网站在这个..

有一个问题特别困扰我-当我运行server.js文件时,它说一切正常。当我尝试在浏览器中访问它时,它说'从本地主机传输数据'并且永远不会结束-就像渲染没有完成发送并且从不发送标头一样。没有错误,没有日志,没有什么- res.render('index')只是挂起。文件存在,脚本也找到了它,但什么也没发生。我在render定义中没有回调,所以header应该像往常一样被发送。另一方面,如果我将渲染命令替换为简单的write('Hello world');然后执行res.end();,效果非常好。

我在渲染上做错了什么?顺便说一句,我没有改变原始安装的任何东西。所讨论的文件是index。js,它在views/中,我甚至调用了app。register('。ejs",要求(' ejs '));只是在渲染之前以防万一。EJS已安装。

同样值得注意的是-如果我做res.render('index');然后res.write('Hello');之后,紧接着res.end();,我确实在屏幕上得到"Hello",但渲染从未发生-它只是挂起并说"从本地主机传输数据"。所以应用程序并没有死或挂起,它只是从未完成渲染。

编辑:有趣的事件:如果我在渲染中定义一个回调,响应确实结束。没有更多的"传输数据…",但视图永远不会渲染,布局也不会。经检查,源是完全空的。没有错误,也没有异常

问题修复。这使得render()必须是路由链中的最后一个命令。把res.write('你好');和res.end ();在那之后,它就被打破了

我删除了所有内容,只写了res.render('index'),效果非常好。从我的失败中学习,新手-渲染后没有输出任何东西!

最新更新