Javascript 为什么我的API没有';无法读取本地JSON文件?(NodeJS)

Javascript 为什么我的API没有';无法读取本地JSON文件?(NodeJS),javascript,node.js,json,http,express,Javascript,Node.js,Json,Http,Express,我试图通过GET请求访问本地存储在API根文件夹中的JSON文件,但它一直在等待主机使用资源进行响应,并且永远不会结束,除非我请求一个不存在的项 import express from 'express' import movies from './movies.json' const app = express() const port = process.env.PORT || '3000' app.get('/', (req, res) =>

我试图通过GET请求访问本地存储在API根文件夹中的JSON文件,但它一直在等待主机使用资源进行响应,并且永远不会结束,除非我请求一个不存在的项

    import express from 'express'
    import movies from './movies.json'

    const app = express()
    const port = process.env.PORT || '3000'

    app.get('/', (req, res) => {
     res.send('Welcome to Vidly!')
    })

    app.get('/api/movies', (req, res) => {
     res.send(movies)
    })

    app.get('/api/movies/:id', (req, res) => {
     let movie
     for (let i = 0; i < movies.length; i++)
      if(movies[i].id === parseInt(req.params.id))
       movie = movies[i]

     if (!movie) {
      return res.status(404).send(`Movie ${req.params.id} not found.`)  
     }

     return movie
   })

   app.listen(port, () => {
    console.log(`Listening on http://localhost:${port}`)
   })
从“express”导入express
从“./movies.json”导入电影
const app=express()
const port=process.env.port | |“3000”
应用程序获取(“/”,(请求,请求)=>{
res.send('欢迎来到维迪!')
})
app.get('/api/movies',(req,res)=>{
res.send(电影)
})
app.get('/api/movies/:id',(req,res)=>{
让电影
for(设i=0;i{
console.log(`listing onhttp://localhost:${port}`)
})
链接到movies.json
我想你有三个选择:

A.将movies.json重命名为movies.js,然后像这样导出代码

// movies.js
export default [
    ...
]

// index.js
import movies from './movies'
既然你显然在使用巴贝尔,你可以试试这个插件

C.使用文件系统清除JSON文件

const fs = require('fs');
const movies = JSON.parse(fs.readFileSync(`${__dirname}/movies`, 'utf8'));

您需要实现一个静态文件处理程序来为客户端提供JSON。

movies.JSON是一个数组,顺便说一句。您在谈论哪个API<代码>/api/movies或
/api/movies/:id
?你也可以提供json文件吗?提供你的json文件plsshare the movies.json文件我建议你使用fs(文件系统),这样可以简化json文件的读写。我会尝试第一种方法,但我确实想使用json文件。因为我需要向它添加值,所以我也将使用文件系统搜索第三个。