【问题标题】:Node relationship with JS and the browser using NPM modules and browserify使用 NPM 模块和 browserify 与 JS 和浏览器的节点关系
【发布时间】:2021-10-22 16:26:09
【问题描述】:

我是 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 的错误,或者如果没有它,它们会是相同的,使用与浏览器不同的环境?
我不喜欢直接的解决方案,而是在必要时用代码解释。

非常感谢您

【问题讨论】:

    标签: javascript node.js browser server browserify


    【解决方案1】:

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

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

    你应该 install Node.js 运行你的程序

    node your_script.js
    

    【讨论】:

    • 那么,例如,如果我想使用浏览器作为界面为网站创建一个数据库,我该怎么做呢?事实上,我看到了一些项目,人们实际上并没有遇到任何问题。谢谢
    • @RichardM。如果你想这样做,你应该做后端,它将通过其接口与 db 通信,前端将通过 REST 或 GraphQL 与后端通信。后端提供简单的程序界面,而前端提供程序界面的人机界面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2021-06-30
    • 2016-06-14
    相关资源
    最近更新 更多