Estoy tratando de crear un servidor para mi aplicación HTML, pero cuando voy a localhost:8080/map me sale Error: Cannot find module 'HTML' . Aún así, la página principal en localhost:8080 funciona bien.
Mi código :
const path = require('path'); const port = 8080; const express = require('express'); const app = express(); app.use(express.static(path.join(__dirname, 'public'))); app.set("view engine", html); app.get('/', (req, res) => { res.render('index.html') }) app.get('/map/', (req, res) => { res.render('map.html') }) var server = app.listen(8080, function () { console.log(`App listening at http://localhost:${server.address().port}/`) })Está utilizando EJS, por lo que debe hacer esto
app.set('view engine', 'html'); app.engine('html', require('ejs').renderFile); Utilice el app.engine(ext, callback) para crear su propio motor de plantillas. ext se refiere a la extensión del archivo y callback es la función del motor de plantilla, que acepta los siguientes elementos como parámetros: la ubicación del archivo, el objeto de opciones y la función de devolución de llamada.
Entonces, con eso, realmente hace que el tiempo de ejecución del nodo cargue el motor de plantilla 'html' y funciona bien.
Por favor refiérase a este enlace
También le faltan comillas en esta línea app.set("view engine", html); . Debería ser app.set("view engine", "html");
const express = require('express'); const app = express(); app.use('/', express.static(__dirname + '/')); app.get('/', function(req, res) { //res.render('index.html') //Such a static call assumes the existence of an index.html file at the call address: nodejs\node_modules\index.html }); app.get('/map', function(req, res) { res.send('Taylor Swift'); }); app.listen(8080); console.log(`App listening at http://localhost:8080/map`)