Intenté casi todo y nada parece funcionar, leí todos los tutoriales y publicaciones de SOF. He estado rascándome el pelo por eso. Recibo un 404 para esta ruta específicamente y no puedo encontrar el problema.
aplicación.js
var watchRouter = require('./routes/watch'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); // app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter); app.use('/search', indexRouter); app.use('/watch/:anime/:id', watchRouter); // catch 404 and forward to error handler app.use(function(req, res, next) { next(createError(404)); }); // error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); }); module.exports = app;ver.js
var router = express.Router(); router.get('/:anime/:id', function(req, res) { });``` module.exports = router;Dado que su ruta en watch.js es '/:anime/:id' , debe cambiar app.use('/watch/:anime/:id', watchRouter); a app.use('/watch', watchRouter); en app.js, de lo contrario, su ruta completa sería '/watch/:anime/:id/:anime/:id' .
Así por ejemplo:
aplicación.js:
app.use('/watch', watchRouter);reloj.js:
router.get('/:anime/:id', (req, res) => { return res.json({ anime: req.params.anime, id: req.params.id }); });