javascript - 如何在 Node.js 和浏览器之间共享代码?

标签 javascript node.js

我正在创建一个带有 JavaScript 客户端(在浏览器中运行)和 Node.js 服务器的小型应用程序,使用 WebSocket 进行通信。

我想在客户端和服务器之间共享代码。我才刚刚开始使用 Node.js,至少可以说,我对现代 JavaScript 的了解有点生疏。所以我仍然对 CommonJS 的 require() 函数有所了解。如果我使用“导出”对象创建我的包,那么我看不到如何在浏览器中使用相同的 JavaScript 文件。

我想创建一组用于两端的方法和类,以方便编码和解码消息以及其他镜像任务。但是,Node.js/CommonJS 打包系统似乎阻止我创建可以在双方使用的 JavaScript 文件。

我也尝试使用 JS.Class 来获得更紧密的 OO 模型,但我放弃了,因为我不知道如何让提供的 JavaScript 文件与 require() 一起工作。我在这里有什么遗漏吗?

最佳答案

如果你想编写一个可以在客户端和服务器端使用的模块,我有一篇关于快速简便方法的简短博客文章: Writing for Node.js and the browser ,本质上如下(其中 thiswindow 相同):

(function(exports){

    // Your code goes here

   exports.test = function(){
        return 'hello world'
    };

})(typeof exports === 'undefined'? this['mymodule']={}: exports);

另外还有一些项目旨在在客户端实现 Node.js API,例如 Marak 的 gemini

您可能还对 DNode 感兴趣,它允许您公开一个 JavaScript 函数,以便可以使用基于 JSON 的简单网络协议(protocol)从另一台机器调用它。

关于javascript - 如何在 Node.js 和浏览器之间共享代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3225251/

相关文章:

javascript - 滚动宽度问题的最佳解决方案是什么?

javascript - 我可以在不使用 javascript 的情况下开始这个简单的 CSS 转换吗

javascript - 前端开发环境搭建

node.js - 如何在 Twilio 函数内发出 POST 请求?

c# - 如何将数据从 C# 推送到 ZeroMQ 并从 Node.JS 拉取数据,反之亦然?

asp.net - 在 JavaScript 网站上使用 Glimpse

javascript - JSDOM:dom.window.document.innerHTML 未定义

javascript - 在导出的类中使用异步 js 导入

javascript - MongoDB bulk.execute()花费太多时间插入无序

javascript - Node gm 流上出现错误