在nodejs服务器和react web客户端之间共享javascript类

在nodejs服务器和react web客户端之间共享javascript类,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我有几个javascript类在我的节点服务器中运行,我希望在react web客户端中重用它们。问题是(我认为)节点代码使用require和module.exports语法,而客户端代码库使用import和export。。。而且看起来我无法将两者混合 有没有一种明智的方法可以在客户端代码中包含一些这样的服务器端类而不重复 [编辑]我面临的问题与重用包含module.export和async方法的代码无关 如果您的节点版本不支持导入导出,您可以选中babel将其转换为所需的ES版本。选中Comm

我有几个javascript类在我的节点服务器中运行,我希望在react web客户端中重用它们。问题是(我认为)节点代码使用require和module.exports语法,而客户端代码库使用import和export。。。而且看起来我无法将两者混合

有没有一种明智的方法可以在客户端代码中包含一些这样的服务器端类而不重复


[编辑]我面临的问题与重用包含module.export和async方法的代码无关

如果您的节点版本不支持导入导出,您可以选中babel将其转换为所需的ES版本。选中

CommonJS模块和
模块。导出
是Node.js和React客户端应用程序之间的共同点


由于React应用程序预计将使用transpiler(Babel)和捆绑工具(Webpack)构建,因此ES和CommonJS模块都可以由Webpack处理。共享CommonJS模块可以在客户端ES模块中导入。通过这种方式,ES模块不会带来任何好处,尤其是树抖动。

你可以在node中使用导入和导出功能。你可以在node中使用
import/export
,问题是它对你如何使用它持令人沮丧的观点,并且希望你的所有JavaScript都有
.mjs
扩展。您是否使用webpack或任何其他捆绑程序?用于将包含
导入/导出
的代码捆绑到服务器和客户端捆绑包中。我想在客户端中使用一点服务器代码。将我的所有服务器代码更改为.mjs(带有导入/导出)目前不是一个选项,而且我认为它不会起作用,因为react不识别导入mjs文件。感谢您的回复。但我不明白你在说什么。我似乎无法在react应用程序中使用为节点编写的类(带有module.export)。它只是不编译。你应该能够像普通模块一样导入它们。“似乎无法”和“无法编译”是什么意思?您是否收到错误消息?这个问题没有说明任何问题。嗯,它开始起作用了。当我第一次尝试对包含节点代码的目录进行符号链接,使其出现在react src中时,我遇到了一系列错误。然而,当我再次尝试时,仅用一两个文件就成功了。我猜目录中的一个文件包含react不喜欢的内容(对不起,我不再有此错误)。总之,您可以将旧式节点代码添加到react源树。@pomo总之,您可以将旧式节点代码添加到react源树。-没错。您从NPM使用的许多第三方库都用作CommonJS(节点样式)模块。当你的应用程序与Webpack/Rollup/etc捆绑在一起时应该不会有问题。对了,我终于回到了最初的错误。首先,由于某些原因,您不能在具有model.exports的代码中使用异步。删除所有这些之后,我得到了“TypeError:Cannotassign to read only property'exports'of object”,我在这里讨论了这个问题,谢谢。我试过了,但一试,我就发现了一个与使用async await有关的错误。在经历了一两个小时的巴别塔地狱之后,我放弃了。