【问题标题】:using JSON data in client side javascript file在客户端 javascript 文件中使用 JSON 数据
【发布时间】:2017-12-22 12:22:51
【问题描述】:

我对 node.js 和 express 还很陌生。我的问题是如何正确检索客户端 javascript 文件中的 json 数据,因为我得到了关于 .json 文件未找到的 404 代码。

我的文件结构是一个通用的 express 结构,.json 文件位于 package.json 文件和 app.js 正下方的 nodeapp 文件夹中。我试图从保存在public/javascripts 文件夹中的 javascript 文件中访问此文件,但似乎可以绕过它。这是我试图在 .js 文件中实现的功能:

function getJSONData(){
    var json;
    $.getJSON('/public/web_text.json', function(data){

        json = data
    });
} 

【问题讨论】:

    标签: javascript jquery json node.js express


    【解决方案1】:

    选项 1

    你需要在 express 中设置静态文件,你可以这样做:

    app.use(express.static(__dirname + '/public'))
    

    然后您可以从您的客户端调用它(不带 public 前缀):

    $.getJSON('/javascript/web_text.json', function(data){});
    

    https://expressjs.com/en/starter/static-files.html


    选项 2

    你的另一个选择是通过sendFilehttp://expressjs.com/en/api.html#res.sendFile发送它:

    app.get('/public/web_text.json', (req, res) => {
        res.sendFile(__dirname + '/my_json_file.json');
    });
    

    然后在您的客户端中,您可以这样称呼它:

    $.getJSON('/public/web_text.json', function(data){})
    

    【讨论】:

    • 还是同样的错误....我的 web_text.json 文件没有保存在 public/javascripts 文件下!它保存在package.json和app.js所在的主app文件夹中
    • 当我重新加载浏览器并调用客户端 js 文件中的函数时,我收到一条错误消息,提示未定义变量 app...
    • 那是你的服务器端代码,它需要去那里
    • 所以你是说选项 2 代码必须放在我的 app.js 文件中?
    • 选项 1 和/或选项 2 必须进入您的 app.js 文件,也就是通过 node 加载的文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2021-12-26
    • 2011-06-24
    相关资源
    最近更新 更多