如何在.js文件中加载本地.JSON文件

时间:2017-12-20 03:44:14

标签: javascript node.js

问题 无法在使用节点旋转的javascript文件中加载本地JSON文件。

详细

问题很简单,但我没有在浏览器中提供javascript文件。我有一个具有逻辑的javascript文件,然后我将其旋转:

node main.js

我搜索了一些解决方案,他们建议使用JQuery或XMLHttpRequest,但它们似乎遇到了与我在浏览器中没有提供此事实相关的问题。

项目背景

我正在使用树莓PI从红外温度传感器获取数据。我使用python来计算电压,转换为摄氏度,然后将其导出为JSON文件。然后,我计划将此文件加载到我的javascript文件中,然后配置角度火灾数据库并推送此数据。

我有一个前端应用程序,然后将其拉下来并向用户显示结束数据。

如果我使用JQuery:

选项1

样品:

$.getJSON("test.json", function(json) {
    console.log(json); // this will show the info it in firebug console
});

错误

$.getJSON is not a function even though I am requiring jQuery.

选项2

如果我使用纯JavaScript,我会看到

样品

 function loadJSON(callback) {   

    var xobj = new XMLHttpRequest();
        xobj.overrideMimeType("application/json");
    xobj.open('GET', 'my_data.json', true); // Replace 'my_data' with the path to your file
    xobj.onreadystatechange = function () {
          if (xobj.readyState == 4 && xobj.status == "200") {
            // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode
            callback(xobj.responseText);
          }
    };
    xobj.send(null);  
 }

错误

xobj.overrideMimeType is not a function

TL / DR

如何将本地JSON文件加载到未加载到浏览器中的javascript文件中,而是将其与节点一起旋转,

node main.js

1 个答案:

答案 0 :(得分:6)

Node.js可以通过require加载JSON文件。请参阅此处的文档:https://nodejs.org/api/modules.html#modules_all_together

  • 如果文件名以'./' or '/' or '../'开头
    • 如果filename.json是文件,则将filename.json解析为JavaScript对象。 STOP

您最想要的是const json = require('./test.json'),假设test.json与需要它的代码位于同一目录中。请记住,require 解析 JSON,因此示例中的json是JavaScript对象。