我可以在 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】:require
和 nodemailer
用于“nodejs”(服务器端 javascript),因此您不能在浏览器中使用 nodejs 功能。
check out this link
【讨论】:
【参考方案3】:您不能从 HTML 文件中使用 Nodemailer。
浏览器无法连接到发送邮件所需的 SMTP 服务器。
【讨论】:
以上是关于我可以在 html 文件中使用 nodejs 库吗?的主要内容,如果未能解决你的问题,请参考以下文章