Estaba trabajando en un blog de Next js, completé el frontend y estaba haciendo backend usando el next js
./pages/apihice un archivo
./pages/api/blogs.js Hice algunos archivos json en la carpeta ./data como datos ficticios
./data/hello.json { "title" : "This is hello", "description" : "This is description", "content" : "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto quasi error cumque iure tempore officiis quaerat rerum delectus hic reprehenderit. Iure, eveniet repudiandae. Consequuntur obcaecati eius sequi similique officia beatae quibusdam blanditiis." } Escribo este código en ./pages/api/blogs.js
import * as fs from 'fs' export default function handler(req, res) { fs.readFile("../../data/hello.json", (err,data)=>{ console.log(data) }) res.status(200).json({"name" : "Shivam Bhai"}) }pero la consola de mi servidor se muestra indefinida. También intenté registrar err en la consola y este fue el resultado
[Error: ENOENT: no such file or directory, open 'C:\projects\data\hello.json'] { errno: -4058, code: 'ENOENT', syscall: 'open', path: 'C:\\projects\\data\\hello.json' }Pero he hecho este directorio. captura de pantalla del sistema de archivos utilizado en el proyecto ¿cómo soluciono este problema?
Debes usar la dirección de esta manera:
import * as fs from 'fs' export default function handler(req, res) { fs.readFile("data/hello.json", (err,data)=>{ console.log(data) }) res.status(200).json({"name" : "Shivam Bhai"}) } Siempre es una buena idea usar también __dirname para direccionar como a continuación:
import * as fs from 'fs' export default function handler(req, res) { fs.readFile(__dirname + "/../../data/hello.json", (err,data)=>{ console.log(data) }) res.status(200).json({"name" : "Shivam Bhai"}) }