express - TypeError:res.render 不是函数,同时尝试使用 express 和 ejs 在服务器端使用视图引擎
问题描述
我正在阅读有关模板的教程。我只是遵循“代码沿用”规则来学习使用模板。我收到错误说 res.render 不是函数。但是在导师中做的同样的事情能够产生结果。
这是我使用 Express(节点)的代码:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.set('view engine', 'ejs');
app.get('/', function(res, req) {
var today = new Date();
var currentDay = today.getDay();
var day = "";
switch (currentDay) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
default:
console.log("Error: Current day is " + currentDay);
}
res.render("list.ejs", {
kindOfDay:day
});
});
app.listen(3000, function() {
console.log("Server is running in port:3000");
});
在使用模板的快速文档中,它显示在 res.render() 中也使用扩展名。也试过了。仍然显示“错误:res.render 不是函数”。
- kindOfDay 是我在视图目录中的 list.ejs 文件中使用的 ejs 元素。
解决方案
对于您编写的 app.get() 方法
app.get('/', function(res, req) { code ...
,res.render("list.ejs", {kindOfDay:day });
尽管我们可以提供您选择的任何参数作为(res,req)
回调函数中的参数,但实际上您也必须编写req.render(...)
。(request, response)
或者您可以为约定更改参数,(req, res)
然后就可以了。
也许这只是一个错字。有关更多信息,请查看快速文档
推荐阅读
- scala - 从 F[A] 创建 ReaderT[F, D, A]
- tsql - 如何使用存储过程将年份和月份添加到我的临时交易编号
- c# - 在 Windows 10 中使用参数启动 C#-ConsoleApp
- php - 如何使用 SolrQuery 添加提升查询
- visual-studio-code - VS 代码调试 launch.json - 在 `env` 中使用 `envFile` 值
- codenameone - 如何约束过渡,例如保持动画组件可见?
- c++ - GitLab for c++ 中的 CodeClimate 报告未显示
- android - 如何从 Firebase 存储中获取所有 URL?
- sql - windows功能+分区硬
- android - 如何使用来自 google place API 的数据创建带有建议的自定义搜索框(在自定义列表中)?