【问题标题】:can I use a nodejs library in an html file?我可以在 html 文件中使用 nodejs 库吗?
【发布时间】: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。但是,一些库也提供浏览器级别的包,这些包也可以通过标签 包含在浏览器中

标签: javascript html node.js


【解决方案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 服务器。

      【讨论】:

        猜你喜欢
        • 2016-11-12
        • 2014-03-17
        • 2020-03-21
        • 1970-01-01
        • 2017-10-22
        • 1970-01-01
        • 1970-01-01
        • 2014-08-02
        相关资源
        最近更新 更多