【问题标题】:cannot retrieve json data from express server?无法从快递服务器检索 json 数据?
【发布时间】:2019-07-22 22:07:56
【问题描述】:

我使用 express 创建了我的第一个简单服务器,但我无法从 data.json 文件中检索 json 数据:

这是服务器的代码:

const express = require('express')
const app = express()
const port = 5000

app.get('/data', (req, res) => res.send('data.json'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))

server.js 文件与 data 文件夹 位于同一级别,其中包含我要从中检索数据的 data.json 文件

服务器工作正常,但我收到一条错误消息Cannot GET /

我的代码有什么问题??

【问题讨论】:

  • 在您的浏览器中尝试localhost:5000/data。你忘记了 /data
  • 另外,当你尝试上面的链接时,你只会得到字符串“data.json”而不是文件,你正在发送一个字符串

标签: javascript express server


【解决方案1】:

基本上,根据您提供给我们的信息,有两个主要错误:

app.get('/data', (req, res) => res.send('data.json'))

需要替换为:

app.get('/data', (req, res) => res.sendFile('data/data.json'))

因为 data.json 位于 data 文件夹中,并且与 server.js

不在同一级别

第二个错误与路线有关。你Cannot GET / 因为你设置的唯一路由是/data,所以你只能从localhost:5000/data 执行获取请求。

如果有什么你想进一步了解的,请告诉我。 https://expressjs.com/it/guide/routing.html

【讨论】:

  • /data 因为第一个参数不是您要查找的文件夹...只是您需要在浏览器中写入以检索您在 res.send 中定义的数据的路径。跨度>
  • 您可以从localhost:5000/hello获取您的数据
  • 谢谢,这很有帮助,是的,我现在知道为什么我的代码出错了,但我需要从 data.json 中检索数据,而不是现在我得到这个消息'data/data.json'
  • 是的,我的第二条评论是错误的,因为stackoverflow.com/users/8434189/mahmouddafer 写道你需要使用 res.sendFile 方法而不是 res.send
  • 谢谢,现在一切正常!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 2017-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
相关资源
最近更新 更多