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

Bro*_*mox 1 javascript node.js

问题无法在与节点一起旋转的javascript文件中加载本地JSON文件.

细节

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

node main.js
Run Code Online (Sandbox Code Playgroud)

我搜索了一些解决方案,他们建议使用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
});
Run Code Online (Sandbox Code Playgroud)

错误

$.getJSON is not a function even though I am requiring jQuery.
Run Code Online (Sandbox Code Playgroud)

选项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);  
 }
Run Code Online (Sandbox Code Playgroud)

错误

xobj.overrideMimeType is not a function
Run Code Online (Sandbox Code Playgroud)

TL/DR

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

node main.js
Run Code Online (Sandbox Code Playgroud)

Exp*_*lls 6

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

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

很可能你想要的是const json = require('./test.json')假设test.json与需要它的代码在同一目录中.请记住,require 解析 JSON,因此json在示例中是一个JavaScript对象.