我可以在 html 文件中使用 nodejs 库吗?

Posted

技术标签:

【中文标题】我可以在 html 文件中使用 nodejs 库吗?【英文标题】:can I use a nodejs library in an html file? 【发布时间】:2022-01-08 11:04:14 【问题描述】:

html 文件中,我想使用库 nodemailer 发送电子邮件。要使用 nodejs 执行此操作,我只需将 var nodemailer = require('nodemailer') 放在我的 HTML 文件的脚本组件的顶部,但是 require 在 HTML 中不是有效的函数。当我尝试这样做时,我收到错误ReferenceError: require is not defined。我想知道如何从 HTML 中使用这个库,或者如果这不可能,有什么好的替代方法可以让我从 HTML 文件中发送电子邮件。

【问题讨论】:

无论您包含多少个 nodejs 库,您都无法从浏览器环境中发送电子邮件。 你不能在浏览器 DOM 上使用 require。但是,一些库也提供浏览器级别的包,这些包也可以通过标签 包含在浏览器中 【参考方案1】:

一些设计用于 Node.js 的库可以被说服在浏览器中工作,尽管您通常需要像 Webpack 这样的工具来替换节点模块系统。这只有在库不依赖于 Node.js 而不是浏览器提供的任何 API 时才有效。

浏览器不提供用于发送电子邮件的 API(除了非常有限的 mailto: URI 方案之外,它将创建一个新电子邮件供用户在其默认电子邮件客户端中发送(如果他们有默认电子邮件客户端))。他们也没有提供任何用于直接创建套接字的 API,可用于构建这样的 API。

你找到的库不会在浏览器中运行。

如果您想发送电子邮件,您需要从服务器发送。您可以发出 HTTP 请求(通过使用 XMLHttpRequest 或 fetch 提交表单)从浏览器获取数据到服务器。

如果您使用 Node.js(可能使用 Express.js 框架)编写服务器,那么您可以使用您找到的库。

【讨论】:

【参考方案2】:

requirenodemailer 用于“nodejs”(服务器端 javascript),因此您不能在浏览器中使用 nodejs 功能。

check out this link

【讨论】:

【参考方案3】:

您不能从 HTML 文件中使用 Nodemailer。

浏览器无法连接到发送邮件所需的 SMTP 服务器。

【讨论】:

以上是关于我可以在 html 文件中使用 nodejs 库吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在Github中的项目中有多个存储库吗?

我可以在 C++ 中使用 cython 编译的动态库吗?

我可以在源代码之外使用 Clang 库吗?

我们可以静态链接动态 C 库吗?

我们可以在 iphone 项目中使用用 c++ 编写的库吗?

我可以使用隐藏的 API 访问 iPod 库吗?