【问题标题】:How to import a file with json object to another js file?如何将带有 json 对象的文件导入另一个 js 文件?
【发布时间】:2020-09-02 15:44:04
【问题描述】:

我有一个带有值的 js 文件。通常,我将它从该数据 js 文件导出到另一个文件。 但目前,我在尝试导出具有 json 对象的文件时遇到错误。 通常,我会通过

导入
var Category=require('./filmdata.js');

import Category from './filmdata.js';

目前,我正在使用第一种方法,因为第二种方法也显示错误为 "Cannot use import statement outside a module" 而第二种方法现在显示,

var price = [
    ^^^^^

SyntaxError: Unexpected identifier
    at wrapSafe (internal/modules/cjs/loader.js:1053:16)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Module.require (internal/modules/cjs/loader.js:1025:19)
    at require (internal/modules/cjs/helpers.js:72:18)

我的 json 对象文件看起来像这样。

exports.Category={
price : [
    {"film":
        {F: [a,b,c],
        I: [d,e,f],
        L: [g,h,i],}
}
],

我可以在此处更改什么以将此 json 对象导入我的文件?提前致谢。

更新:我错过了说我在同一个 js 文件中也有大约 5 个数组。 根据提供的答案,我尝试仅使用 json 对象并将其导出并且它有效。但是,如果我有数组和 json 对象,我无法在其他地方导出和使用它。我的 data.js 看起来像,

exports.Category={
    price : [
        {"film":
            {F: [a,b,c],
            I: [d,e,f],
            L: [g,h,i],}
    }
    ],
   let arr1=[F,I,L],
   let arr2=[10,20,50],
   let arr3=[A,U,I],
   let arr4=[2,5,10],
   minimumvalue=2,
   maximumvalue=5000
}

【问题讨论】:

    标签: javascript webdriver-io


    【解决方案1】:

    js 对象内部键值对必须有: 而不是=

    index.js

    exports.data = {
    price: [
        {
          "film":
          {
            F: [`a`, `b`, `c`],
            I: [`d`, `e`, `f`],
            L: [`g`, `h`, `i`],
          }
        }
      ]
    }
    

    read.js

    // const data = require('./index').data;
    
    // or
    
    const {data} = require('./index');
    
    console.log(data.price)
    

    【讨论】:

    • 我更改了冒号,但仍然收到错误,因为找不到模块。内部/模块/cjs/loader.js:968 抛出错误; ^
    • 您是否尝试过我给出的示例。复制粘贴此示例并检查
    • 是的,我已经尝试过了。但是,由于找不到模块而出错。似乎还有其他一些问题。我不确定这是哪里出错了。webdriverio 插件是否有可能成为问题?我使用了地图数组函数并得到了另一个错误。 ReferenceError: 地图未定义
    • var pricemap = new map( [ [F,[a,b,c]], [I,[d,e,f]], [L:[g,h,i]] ]);这是我最后使用的,试图将它用作地图数组,但得到了一个参考错误。
    • 你没有太多使用地图来导出。 Map 用于对数组中的所有元素进行一些修改。示例将 5 添加到该数组中的每个元素。
    【解决方案2】:

    您的错误在于您在 filmdata.js 中分配 price 变量的方式。由于变量在对象中,因此必须使用冒号为其赋值:price: <value>

    所以filmdata.js 会是这样的:

    exports.Category={
      price: [{
        "film": {
           F: [1, 2, 3],
           I: [4, 5, 6],
           L: [9, 8, 7],
          }
        }
      ]
    }
    

    以及它之后的任何其他数据。

    【讨论】:

    • 我更改了冒号,但仍然收到错误,因为找不到模块。内部/模块/cjs/loader.js:968 抛出错误; ^
    猜你喜欢
    • 2022-11-23
    • 2017-05-02
    • 1970-01-01
    • 2021-05-20
    • 2023-03-08
    • 2021-04-18
    • 2021-07-05
    • 2022-06-17
    • 2022-01-03
    相关资源
    最近更新 更多