• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

1K
Views
Express error - TypeError: Router.use() requiere una función de middleware pero obtuvo un objeto

Recibo este error cuando ejecuto npm start para ejecutar mi aplicación express.

 TypeError: Router.use() requires middleware function but got a Object

mi código app.js

 var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); // uncomment after placing your favicon in /public //app.use(favicon(__dirname + '/public/favicon.ico')); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); app.use('/users', users); /// catch 404 and forwarding to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); /// error handlers // development error handler // will print stacktrace if (app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked to user app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }); module.exports = app;

mi código index.js

 var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res) { res.render('index', { title: 'Express' }); }); /* GET Hello World page. */ router.get('/helloworld', function(req, res) { res.render('helloworld', { title: 'Hello, World!' }) }); module.exports = router;

Soy bastante nuevo en el uso de Node y express. No puedo ver dónde me he equivocado. ¿Alguien puede ver cuál es mi problema?

about 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Encontré la respuesta en los comentarios de Kop4lyf :

verifique sus usuarios.js. También debería exportar el enrutador como index.js, si puede intentarlo.

Sin embargo, esta pregunta fue mi principal resultado de búsqueda cuando me encontré con este problema, por lo que estoy promoviendo una respuesta.


El error se debe a que uno de sus módulos de ruta no se exporta, lo que significa que Express no tiene acceso a él cuando intenta identificar todas sus rutas.

Puede solucionar esto agregando module.exports = router; al final de cada uno de sus archivos de ruta.

Ejemplo:

 var express = require('express'); var router = express.Router(); router.get('/', function(req, res, next) { //Do whatever... }); module.exports = router;

Puede encontrar más información sobre module.exports en esta pregunta o en la documentación oficial de Node.js.

about 3 years ago · Santiago Trujillo Report

0

He arreglado esto agregando cuál estoy usando en alguna parte. Por lo tanto, compruebe todas sus exportaciones.

 module.exports = router;
about 3 years ago · Santiago Trujillo Report

0

Si usas en rutas

 exports default router

Tu solución puede ser

 module.exports = router
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error