Soy nuevo en el desarrollo de Node y ExpressJs, sin embargo, no puedo importar un enrutador de módulo creado por mí como ejercicio.
Me da este error:
TypeError: Router.use () requires a middleware function but got a string at Function.useYa probé la solución module.exports, pero no funciona. La función de inicialización también falla.
Estas son las versiones con las que estoy trabajando:
Versión del nodo: v10.19.0
Versión expresa: 4.17.2
Índice.js
const express = require('express'); const app = express(); const ProgettoRouting = require("./routing/ProgettoRouting"); app.use("view engine","jade"); app.use(express.static("public")); //Codifica dati json con questo middlware senza uso //del pacchetto npm Body Parser app.use(express.json()); //Con questo milldelware Importiamo il Router Dati //dove risiedono le funzionalità del progetto app.use('/route', ProgettoRouting); //app.use(app.ProgettoRouting); //ProgettoRouting.initialize(app); app.listen(3000, () => {console.log("Server in ascolto sulla porta 3000")});ProgettoRouting.js
const express = require('express'); const router = express.Router(); router.post("/",(res,req) => { let firstName = req.body.nome; let lastName = req.body.cognome; let message = {nome: firstName, cognome: lastName}; res.render("index",message); }); module.exports = router;necesitas usar
app.set("view engine","jade");
en vez de
app.use("view engine","jade");
ya que tiene la intención de establecer la propiedad view-engine en jade , no configurar un middleware.