节点 js fs 在 console.log 上显示未定义

Node js fs is showing undefined on console.log

我正在开发 Next js 博客, 我已经完成了前端,我正在使用下一个 js

制作后端
./pages/api

我做了一个文件

./pages/api/blogs.js

我在 ./data 文件夹中制作了一些 json 文件作为虚拟数据

./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."
}

我把这段代码写在./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"})
}

但我的服务器控制台显示未定义。 我还尝试在控制台上登录错误,这是结果

    [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'
}

但是我做了这个目录。 screenshot of the filesystem used in project 我该如何解决这个问题?

您应该这样使用地址:

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"})
}

同时使用 __dirname 寻址总是一个好主意,如下所示:

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"})
}