在Node/Express中渲染视图总是会导致错误

Rendering view in Node/Express always causes error

本文关键字:错误 视图 Node Express      更新时间:2023-09-26

我配置了nodejs/express应用程序,如下所示;

app.set('views', __dirname + './views');
app.set('view engine', 'ejs');

然后我添加了一条类似的路线

app.get('/page/MyPage', function(req, res) {
    // res.statusCode = 200; // Setting the status code here has no effect on the error.
    res.render('MyPage', { Data: "Stuff" });
});

然而,每当我请求页面时,http://localhost:8000/page/MyPage节点就会与TypeError: Cannot call method 'toString' of undefined崩溃,从而中断http.js类。

确切的线路:

 var statusLine = 'HTTP/1.1 ' + statusCode.toString() + ' ' +
               reasonPhrase + CRLF; // Aprox line 1180, in ServerResponse.prototype.writeHead = function(statusCode) function.

我尝试过在渲染中为"MyPage"添加扩展,也尝试过其他视图引擎。所有这些都产生了相同的结果。

视图确实存在于/views目录中。

有人有什么建议吗

app.set('views', __dirname + './views');可能是app.set('views', __dirname + '/views');

解决方案:

在经历了大量javascript之后,我发现了这个问题。看来,尽管明示文件(http://expressjs.com/guide.html)建议这是自动完成的,我需要手动设置视图引擎。

在这种情况下,我还使用vash视图引擎。

app.set('views', __dirname + '/views');
app.set('view engine', 'vash');
app.engine('.vash', require('vash').renderFile);

这使我的视图能够按预期进行渲染。