Jquery 如何在node.js服务器上向客户端ajax请求提供json文本文件

Jquery 如何在node.js服务器上向客户端ajax请求提供json文本文件,jquery,node.js,ajax,Jquery,Node.js,Ajax,我正在aws ubuntu服务器上运行一个简单的node.js web应用程序。我有一些来自api的json数据,这些数据存储在ubuntu服务器的本地文本文件中,名为data.json 我只想通过AJAX调用从json文件加载数据,并将其呈现在客户端html上 以下是我的项目目录结构: MyApp server.js index.html data.json 此客户端代码在Webstorm和本地运行,但在我的live server上返回一个错误(看

我正在aws ubuntu服务器上运行一个简单的node.js web应用程序。我有一些来自api的json数据,这些数据存储在ubuntu服务器的本地文本文件中,名为
data.json

我只想通过AJAX调用从json文件加载数据,并将其呈现在客户端html上

以下是我的项目目录结构:

    MyApp
      server.js
      index.html
      data.json
此客户端代码在Webstorm和本地运行,但在我的live server上返回一个错误(看起来它返回的是一个html错误文件,而不是解释解析错误的json,但没有解决如何获取此数据的问题)


我建议将
*.json
文件放入子文件夹。而不是在服务器端授予对该文件夹的静态访问权限

例如: 将所有
*.json
文件放入
/public
文件夹中

// server.js
const express = require('express')
const app = express()

app.use('/data', express.static('public'))
...
客户端:

$.get( "/data/my-file.json", function( data ) {
  alert( "Data Loaded: " + data );
});

谢谢,你有没有这样的例子?我把它写在我的server.js节点文件中?从前端怎么叫?是的,快车。我需要“静态服务”还是什么?当我这样做时,ThanksIt正在加载一个html文件,而不是data.json。然后出现错误,因为无法分析“在路由之前放置app.use”我更新了我的问题以包含我的server.js节点代码。只需移动行app.use(“/data”,express.static('public'))-在行app.use(“/”,router)之前;订单很重要!
// server.js
const express = require('express')
const app = express()

app.use('/data', express.static('public'))
...
$.get( "/data/my-file.json", function( data ) {
  alert( "Data Loaded: " + data );
});