我使用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)
})
1条答案
按热度按时间hmmo2u0o1#
包
emailjs-com
已弃用,不再支持较新版本的Node.js。请使用以下命令安装@emailjs/browser
:npm install @emailjs/browser --save
.您还必须将
const emailjs = require("emailjs")
替换为const emailjs = require("@emailjs/browser")
以导入正确的包。然后,您的导入应按预期工作。