soy nuevo en el desarrollo web backend y estaba practicando en un proyecto en nodejs y express.js A continuación se muestra el código de mi archivo app.js
const express = require("express") const bp = require("body-parser") const app = express() app.set("view-engine", "ejs") app.get("/", (req, res) => { const date = new Date() const curDay = date.getDay() let day = "" if (curDay === 6 || curDay === 0){ day = "weekend" } else{ day = "weekday" } res.render("list", {kindOfDay: day}) }) app.listen(3000, () => { console.log("Listening on port 3000") })Y debajo está el código de mi archivo list.ejs
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta charset="UTF-8"> <title>To-Do List App</title> </head> <body> <h1>It's a <%= kindOfDay %>!</h1> </body> </html>Cuando intento ejecutar la aplicación usando el comando nodemon app.js, me devuelve un error que dice
Error: no se especificó ningún motor predeterminado y no se proporcionó ninguna extensión. en la nueva Vista (/storage/emulated/0/todo-list-app-ver_1/node_modules/express/lib/view.js:61:11) en Function.render (/storage/emulated/0/todo-list-app -ver_1/node_modules/express/lib/application.js:570:12) en ServerResponse.render (/storage/emulated/0/todo-list-app-ver_1/node_modules/express/lib/response.js:1012:7 ) en /storage/emulated/0/todo-list-app-ver_1/app.js:15:7 en Layer.handle [como handle_request] (/storage/emulated/0/todo-list-app-ver_1/node_modules/ express/lib/router/layer.js:95:5) en el siguiente (/storage/emulated/0/todo-list-app-ver_1/node_modules/express/lib/router/route.js:137:13) en Route .dispatch (/storage/emulated/0/todo-list-app-ver_1/node_modules/express/lib/router/route.js:112:3) en Layer.handle [como handle_request] (/storage/emulated/0/ todo-list-app-ver_1/node_modules/express/lib/router/layer.js:95:5) en /storage/emulated/0/todo-list-app-ver_1/node_modules/express/lib/router/index. js:281:22 en Function.process_params (/storage/emulated/0/todo-list-app-ver_1/node_modules/express/ lib/router/index.js:335:12)
La salida esperada debe ser
es un dia de semana
o
es un fin de semana
no sé qué está causando el error. Mi versión de nodo es 16.13.0 y mi versión express es 4.17.1
Tiene un error tipográfico en app.set("view-engine", "ejs") , en su lugar debería ser app.set("view engine", "ejs") y funciona de maravilla ;-)
const express = require("express"); const app = express(); app.set("view engine", "ejs"); app.get("/", (req, res) => { const date = new Date(); const curDay = date.getDay(); let day = ""; if (curDay === 6 || curDay === 0) { day = "weekend"; } else { day = "weekday"; } res.render("list", { kindOfDay: day }); }); app.listen(3000, () => { console.log("Listening on port 3000"); })