【问题标题】:Accessing JSON from Node/Express Route?从 Node/Express Route 访问 JSON?
【发布时间】:2015-10-22 18:40:22
【问题描述】:

我想知道,由于 Node 是用 JavaScript 编写的,并且我正在使用 ES6 编写一个有趣的应用程序,有没有一种方法可以访问我发送到路由的对象而不使用 ajax 从服务器获取它/ api?换句话说,我可以说类似

import { jsonData } from '../api/server.js'; 

然后可以在我的客户端控制器中使用jsonData 作为变量吗? 换句话说...我会有这样的东西:

var DataController = (req, res) => {
let data_client = new DataClient();

data_client.getData().then(
    (data) => {
        res.render('index', { jsonData: jsonData });
    },
    (error) => {
        res.send('An error occurred. Please check your connection settings.');
    }
);

我问的可能吗? 如果没有,我会只使用 XHR 请求还是获取? 只是想知道我的选择是什么,因为我想充分利用 Node (4.x)。抱歉,如果这个问题令人困惑或含糊不清。

【问题讨论】:

  • 除非 server.js 导出 jsonData(我对此表示怀疑),否则您必须通过向服务器发送 http 请求来获取该数据,或者,取决于您的路由是如何构建的,通过执行返回数据的路由函数。
  • 这是有道理的——我就是这么想的,只是想确保没有更简单的方法。对我来说,Express 将所有内容都包装到 MVC 框架中仍然很奇怪,但接下来只需要记住这只是服务器。客户端和 API 在技术上具有“独立”的应用程序。谢谢!!

标签: javascript json ajax node.js


【解决方案1】:

我认为服务器端文件不能通过客户端访问。

如果您使您的服务器端文件在客户端可用,并且您的 server.js 文件足够通用,可以在客户端以及正确的客户端导出语句上运行,那么是的,您可以导入 jsondata,语法如下

import { jsonData } from '../api/server.js'; 

并在其他地方使用它

注意支持import声明的浏览器有限

您可以从here查看列表

【讨论】:

  • 这似乎有风险 - 我想我会使用某种 ajax 调用!
  • Ajax 更好,如果你真的想避免ajax,这是我能想到的唯一方法
猜你喜欢
  • 2021-02-21
  • 2022-01-20
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-02-23
相关资源
最近更新 更多