Javascript 将多个常量导出为一个json
我有几个常量文件和一个常量文件夹中的index.js文件 index.js文件Javascript 将多个常量导出为一个json,javascript,Javascript,我有几个常量文件和一个常量文件夹中的index.js文件 index.js文件 import * as env from "./env.constants"; import * as httpC from "./http.constants"; import * as localStorage from "./localStorage.constants"; import * as routes from "./routes.constants"; const appConstants
import * as env from "./env.constants";
import * as httpC from "./http.constants";
import * as localStorage from "./localStorage.constants";
import * as routes from "./routes.constants";
const appConstants = {
...env,
...httpC,
...localStorage,
...routes
};
console.log(appConstants);
export default appConstants;
我的常量文件如下所示
http.constants.js
export const GET = "GET";
export const POST = "POST";
其他文件使用不同的名称进行相同的导出。
index.js的控制台输出是一个json,包含所有常量。
但当我把它们作为
import * as test from "./constants";
console.log(test);
import * as test from "./constants";
console.log(test);
我在浏览器中获得以下输出,
我想在单个导入中使用常量
import { GET, LOGIN_URL } from 'constants';
我错过了什么
但当我把它们作为
import * as test from "./constants";
console.log(test);
import * as test from "./constants";
console.log(test);
我在浏览器中获得以下输出
这是因为您正在导入模块的模块名称空间对象(这就是import*
所做的),然后直接输出它
要获取所需的常量
文件,不要将导入*为
,然后将它们组合到一个对象中,并将该对象作为默认值导出;相反,只需像这样重新导出它们:
export * from "./env.constants";
export * from "./http.constants";
export * from "./localStorage.constants";
export * from "./routes.constants";
将所有这些模块中的所有命名导出导出为常量
模块中的命名导出
与Node.js中类似CommonJS的模块系统相比,您试图做的是对JavaScript模块系统的一个相对常见的误解。命名导出是而不是只是默认导出对象上的属性。命名导出是它们自己的第一级内容。如果您这样做:
export default {
foo: 42
};
…您不能从“/mod”执行import{foo}来导入它,因为foo
不是命名的导出,它只是默认导出上的一个属性,默认导出是一个对象
我有几个常量文件和一个常量文件夹中的index.js文件
import { GET, LOGIN_URL } from 'constants';
FWIW依赖于此从constants
文件夹导入index.js
文件依赖于Node.js特定的功能,而不是JavaScript模块系统中内置的任何功能。如果您只希望它在Node.js中工作,那很好,但请注意它不是标准的。“index.js的控制台输出是json…”不,不是。它是一个物体。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。。我不知道这个标准。这是一个项目。所以我应该把常量存储在json文件中,而不是js文件?@BhaskerYadav-不,我不知道你是怎么从上面的答案中得到的。(再说一次:在你的问题或答案中没有JSON。)在JavaScript文件中定义常量是可以的。这就是如何将正在执行此操作的多个模块汇总到单个模块中的方法。