mi código app.js.
// To make it clear to the consumer that the application is an API, prefix the endpoint with /api app.use("/api/v1", auth); app.use("/api/v1/pages", authRoute, pages); app.use("/api/v1/users",authRoute, users); app.use("/api/v1/books",authRoute, books); app.use("/api/v1/authors",authRoute, authors); app.use("/api/v1/chapters", authRoute, chapters); const start = async () => { try { await conn(process.env.MONGO_URI); // Access the connection string in .env app.listen(PORT, () => console.log(`Server is listening on port ${PORT}`)); } catch (err) { console.log(err); } }; //rate limit const limit = rateLimit({ windowMs: 1 * 60 * 1000, max: 25, }); app.use(limit); start(); export default app;entonces, si un usuario escribe /api/v1/bookkks, quiero devolver un mensaje que dice que no existe.
Actualmente recibo esto en cartero si está mal escrito.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Error</title> </head> <body> <pre>Cannot GET /api/v1/chapter</pre> </body> </html>tenga en cuenta que esto es una API y no tengo ninguna página web configurada.
Puede lograr esto usando un Middleware simple en Express.
Consulte la adición a continuación (el middleware 404 debe ser la última ruta definida en la aplicación)
// To make it clear to the consumer that the application is an API, prefix the endpoint with /api app.use("/api/v1", auth); app.use("/api/v1/pages", authRoute, pages); app.use("/api/v1/users", authRoute, users); app.use("/api/v1/books", authRoute, books); app.use("/api/v1/authors", authRoute, authors); app.use("/api/v1/chapters", authRoute, chapters); app.use((req, res, next) => { res.status(404).send("Route Not Found!"); }); const start = async () => { try { await conn(process.env.MONGO_URI); // Access the connection string in .env app.listen(PORT, () => console.log(`Server is listening on port ${PORT}`)); } catch (err) { console.log(err); } };