Email.js未在Node.js后端服务器上返回错误

4nkexdtk  于 2023-03-08  发布在  Node.js
关注(0)|答案(1)|浏览(117)

我使用email.js从我的服务器发送电子邮件,Node.js和Express。Email.js有一个npm包,所以我使用const emailjs = require("emailjs")导入它。但是,我收到一个错误:

Instead change the require of email.js in Mycomputer\index.js to a dynamic import() which is available in all CommonJS modules.
   at Object.<anonymous> (Mycomputer\index.js:4:17) {
 code: 'ERR_REQUIRE_ESM'
}

什么是dynamic import?如何在我的项目中使用它?这段代码在使用<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@emailjs/browser@3/dist/email.min.js"></script>的客户端上运行良好
下面是我的代码:

const { response } = require("express")
const express = require("express")
const app = express()
const emailjs = require("emailjs")

const port = 3000
app.listen(port, () => {
    console.log(`Listening at port ${port}`)
})

app.use(express.static("public"))
app.use(express.json({limit: "1mb"}))

app.post("/email", (request, response) => {

    (function () {
        // https://dashboard.emailjs.com/admin/account
        emailjs.init("My top secret API key")
    })();

    const sendContactData = (parmas) => {
        const tempParmas = {
            from_name: request.body.from_name,
            reply_to: request.body.reply_to,
            subject: request.body.from_namerequest.body.subject,
            message: request.body.message,
        }

        emailjs.send("My top secret service ID", "My top secret template", tempParmas).then((res) => {
            console.log(res)
            response.send("Success!")
        })

    }
    response.send("Success!")
    console.log(request.body)
})
hmmo2u0o

hmmo2u0o1#

emailjs-com已弃用,不再支持较新版本的Node.js。请使用以下命令安装@emailjs/browsernpm install @emailjs/browser --save.
您还必须将const emailjs = require("emailjs")替换为const emailjs = require("@emailjs/browser")以导入正确的包。然后,您的导入应按预期工作。

相关问题