Por lo tanto, quiero ver/ejecutar/mostrar páginas web que no sean index.html desde mi carpeta pública que tiene varios archivos html usando ExpressJS y NodeJS. Cada vez que ejecuto mi servidor, solo puedo ver el archivo index.html. ¿Hay alguna forma de acceder a otros archivos html? Soy un principiante y recién estoy comenzando con la parte de backend. Esta es mi aplicación.js
app=express(); const path=require('path'); const Router=express.Router(); const port=process.env.PORT||3000; require("./db/connectdb"); const static_path=path.join(__dirname,"../../frontend/public"); app.use(express.static(static_path)); app.get('/createelection',(req,res)=>{ console.log("Create an Election here"); }); app.listen(port,()=>{ console.log('Server is running at port no. '+ port); });Mi carpeta pública
Public -index.html -createelection.html -voterlogin.htmlDe un comentario sobre la pregunta:
localhost:3000/createelection
Por defecto, el módulo estático:
index.html si solicita una ruta que termine en / Está solicitando createelection pero el archivo se llama createelection.html .
Con su código actual, debe solicitar http://localhost:3000/createelection.html .
Alternativamente, puede decirle a Express que intente autocompletar la extensión del archivo por usted. Mire la documentación para el módulo estático :
extensiones : Establece extensiones de archivo alternativas: si no se encuentra un archivo, busca archivos con las extensiones especificadas y sirve el primero que se encuentre. Ejemplo:
['html', 'htm'].
El valor predeterminado es false
Entonces necesitarías:
app.use(express.static(static_path, { extensions: true }));