繁体   English   中英

Javascript - 如何将相同的 JSON(或替代)文件加载到 node.js 和浏览器中

[英]Javascript - how to load the same JSON (or alternative) file into both node.js and browser

我希望将 memory 文件(或带有 object 的 a.js 文件)加载到节点脚本和浏览器中。 是否有任何干净和纯粹的 JS 方法可以做到这一点,而无需为每个单独的文件?

该文件仅包含有关客户端和服务器端使用的事物的属性,目标是当我需要更改某些属性时,它将反映在客户端(javascript)和服务器(节点)上。 运行时不需要更新,理想情况下应该分别在页面加载和脚本启动时加载和缓存。

我试过使用一个 .json 文件,这使得它很容易在节点中使用,但在浏览器中我看到的唯一解决方案是使用包或某种过于复杂的 api,这对我的使用来说似乎太过分了(尽管这可能是我唯一的选项)。 如果我将属性存储为 a.js 文件,其中定义了 object,则很容易在浏览器中加载,但在没有 module.exprots 的节点中加载。

我不能轻易做到这一点似乎很不方便,尤其是当它只是一个带有项目属性的小型 JSON object 时。

任何帮助表示赞赏!

只需将文件公开,并在前端和后端使用它。

假设您使用 epxress。

app.use(express.static('./')); //Use static folder

但是,如果您有敏感信息,请注意共享文件可能会变得不安全,但您已经知道了。

编辑

你说这不是问题,在评论中。 我说那你必须做某种端点来导出这个数组。 做这个:

const object = {
   // You object here
}

app.get('/route', (req, res) => {
   res.json(object);
}

客户:

fetch('/route').then(res => res.json()).then(data => {
    // You have access to the data, here.
})

像这样,您可以在后端和前端使用 object。

尽管我怀疑还有一种方法可以使用 static 文件夹来做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM