繁体   English   中英

为什么我的API无法读取本地JSON文件? (的NodeJS)

[英]Why my API doesn't read local JSON file? (NodeJS)

我正在尝试使用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}`)
   })

链接到movie.json http://dontpad.com/movies.json

我认为您有三种选择:

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

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

// index.js
import movies from './movies'

B.由于您显然正在使用babel,因此可以尝试插件inline-json-import

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

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

您需要实现一个静态文件处理程序https://expressjs.com/en/resources/middleware/serve-static.html才能将JSON提供给客户端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM