Estoy tratando de usar javascript de tipo "módulo" con express-js por primera vez. Estoy tratando de crear una aplicación de seguimiento de libros, pero recibo un error cuando intento importar rutas en el archivo js principal, dice que no se puede encontrar el módulo.
aplicación.js:
import dotenv from "dotenv"; dotenv.config(); import express from "express"; import bodyParser from "body-parser"; import cors from "cors"; import mongoose from "mongoose"; // import routes import authRoutes from "./routes/auth"; // db config mongoose .connect(process.env.DB_URI, { useNewUrlParser: true, useUnifiedTopology: true, }) .then(() => console.log("DB Connected")) .catch((err) => console.log(err)); // constants const app = express(); const port = process.env.PORT || 5001; // middlewares app.use(bodyParser.json()); app.use(cors()); // using routes app.use("/api", authRoutes); app.listen(port, () => console.log(`Server is running on http://localhost:${port}/`) );rutas/auth.js:
import express from "express"; const router = express.Router(); router.get("/auth", (req, res) => { res.send("Hello from auth"); }); export default router;paquete.json:
{ "name": "server", "version": "1.0.0", "main": "app.js", "license": "MIT", "type": "module", "dependencies": { "body-parser": "^1.19.0", "cors": "^2.8.5", "dotenv": "^10.0.0", "express": "^4.17.1", "mongoose": "^6.0.5" } }Nota: ¡Otras importaciones relacionadas con modelos de bases de datos funcionan bien!
Agregar la extensión js Node ESM no funciona sin él
import authRoutes from "./routes/auth.js";