首页 > 解决方案 > 使用 NPM 模块和 browserify 与 JS 和浏览器的节点关系

问题描述

我是新的 StackOverflow 用户,我开始学习编程的后端。
我主要使用 JS 客户端,所以后端有一些我需要澄清的事情。

我对 Node 及其与浏览器的连接有疑问,即使使用 browserify。
我知道浏览器不是 Node 的环境,但我需要使用它,因为我需要了解它的一些小细节。
问题是,即使我使用 browserify 来绑定几个 npm 模块,每次我尝试要求 MySQL 或 HTTP 或 Express 时,都会发生错误。
如果我使用 require('http') 和/或 require('express') 会发生此错误: TypeError: http.ServerResponse is undefined;
相反,如果我使用 require('mysql') 会发生此错误:TypeError: Net.createConnection is not a function

我的问题是:
- 我该如何解决这个问题?
- 这些是相对于 browserify 的错误,或者如果没有它,它们会是相同的,使用与浏览器不同的环境?
我不喜欢直接的解决方案,而是在必要时对代码进行解释。

非常感谢您提前

标签: javascriptnode.jsbrowserserverbrowserify

解决方案


诸如mysql需要低级网络接口的模块。http是对该网络接口的抽象。所以你真的需要net模块,它在浏览器环境中根本不可用。

Browserify 只是一个半 nodejs 环境。它模拟了一些可以在浏览器中填充的模块。

你应该安装 Node.js这样运行你的程序

node your_script.js

推荐阅读