Estoy trabajando en la creación de la API de automóviles clásicos. Ahora estoy tratando de extraer una matriz JSON de un archivo externo. Di un paso hacia una resolución, sin embargo, mi "solución" devolverá el objeto completo, en lugar de la matriz json.
Esto es del archivo vehicle.js, que se encuentra en api/routes/
import express from 'express'; import path from 'path'; import { fileURLToPath } from 'url'; import { dirname } from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const router = express.Router(); router.get('/', (req, res, next) => { res.status(200).sendFile(path.join(__dirname, '../resources', 'vehicles.json')); }); export default router;El app.js se ve así:
import express from 'express'; const app = express(); import vehiclesRoute from './api/routes/vehicles.js'; app.use('/vehicles', vehiclesRoute); export default app;Algo más que probé fue en las líneas de:
import parsedJSON from './resources/vehicles.json'; var vehiclesJSON = parsedJSON.vehicles; router.get('/', (req, res, next) => { let vehiclesJSONpath = path.join(__dirname, '../resources', 'vehicles.json'); res.status(200).fetch(vehiclesJSONpath) .then(res => res.json()) .then(data => console.log(data)); });Cerraré esto. La solución fue sencilla.
'use strict'; let rawdata = fs.readFileSync('api/resources/vehicles.json'); let vehicles = JSON.parse(rawdata);Luego, para poder obtenerlo como respuesta:
router.get('/', (req, res, next) => { res.status(200).json(vehicles); });Guardado por: https://stackabuse.com/reading-and-writing-json-files-with-node-js/