【发布时间】:2020-11-05 09:53:07
【问题描述】:
我正在尝试将一个简单的对象变量从服务器端 JS 文件导出到客户端 JS 文件。在服务器端文件中,我正在做一些网络抓取,最终产生一个简单的对象变量。在客户端文件中,我希望能够访问该变量。
我发现我确实可以导出一个变量,但是,如果服务器端文件中存在任何 commonJS 语法(如果我错了,请纠正我),那么它将不起作用。客户端文件将尝试读取整个服务器端文件,包括 commonJS 语法——但它不能。
以下代码演示了我的代码和问题:
服务器端文件:
const module = require('random_module');
let myVar = {
firstName: "John",
lastName: "Doe"
}
export { myVar };
客户端文件:
import { myVar } from 'server-side.js';
console.log(myVar);
在上面的示例中,require 语句禁止导入/导出工作。如果我删除那条线,它会起作用。但是,我不能简单地删除 require 语句,因为我的代码中需要这些语句。我当然可以将我的网络爬虫输出到 JSON 文件,然后从中读取,但这似乎很冗长。
其他人已经解决了节点和浏览器之间共享代码的问题,例如这个this post,但是,我只需要导出一个简单的对象变量——而不是整个模块。
尽管我的明确导出语句针对一个简单的对象变量,为什么客户端文件仍试图读取整个服务器端文件?我该如何规避这个问题?
谢谢。
【问题讨论】:
标签: javascript node.js commonjs