You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Browserify打包后报net.Socket is not a constructor错误如何解决

问题原因与解决方案

你遇到的报错是因为引入的pg是Node.js端专用的PostgreSQL连接库,它依赖Node.js原生的net、tls等系统模块,这些模块在浏览器运行环境中完全不存在。Browserify仅能打包兼容浏览器的CommonJS模块,无法将Node.js原生API替换为浏览器可用的实现。同时你直接在前端代码中写入数据库明文账号密码,会直接暴露给所有访问页面的用户,存在极高的安全风险。

方案1:新增后端接口中转(推荐,生产环境唯一可用方案)

这是最合理的架构,所有数据库操作都放在后端执行,前端仅和后端接口交互:

  • 新增一个简单的Node.js后端服务(可用Express、Koa等框架实现),开发一个接收数据的POST接口,比如/api/saveLamp0Data
  • 后端服务中使用pg库完成PostgreSQL的连接和数据写入操作,同时配置跨域规则允许前端页面访问接口
  • 删除前端代码中的InsertToDataBase.js引用,将原来调用InsertToDataBase.insertdatatolamp0(0,1)的逻辑,改为用axios向后端接口发送携带对应参数的POST请求即可

方案2:替换本地存储方案(仅适用于纯本地个人使用、不需要公共存储的场景)

如果你只是需要在本地浏览器端存储数据,不需要把数据存入公共的PostgreSQL数据库,可以把存储逻辑替换为浏览器原生支持的存储方案:

  • 小体量数据直接用localStorage存储
  • 大体量结构化数据用IndexedDB存储

这种方案无需额外后端服务,但数据仅存在当前用户的本地浏览器中,其他用户无法访问,也不能做跨设备同步。

注意:你当前设置的请求间隔是100ms,频率过高,可能会给服务器带来不必要的压力,建议根据实际业务需求调整到合理的间隔。

内容的提问来源于stack exchange,提问作者Badr-Eddine El mostaine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:06:04