Node.js 错误空响应
我正试图添加一个联系方式,将发送到一个专用的gmail帐户。我已经让联系人表单独立工作,但当我尝试将其添加到我的工作项目时,它不工作,我得到的错误是:Node.js 错误空响应,node.js,reactjs,express,mern,Node.js,Reactjs,Express,Mern,我正试图添加一个联系方式,将发送到一个专用的gmail帐户。我已经让联系人表单独立工作,但当我尝试将其添加到我的工作项目时,它不工作,我得到的错误是: Cannot POST /api/send 该项目是一个MERN堆栈。下面是mailer.js中间件: import nodemailer from 'nodemailer' import config from '../config' const transporter = nodemailer.createTransport({
Cannot POST /api/send
该项目是一个MERN堆栈。下面是mailer.js中间件:
import nodemailer from 'nodemailer'
import config from '../config'
const transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 587,
auth: {
user: process.env.username,
pass: process.env.password,
}
});
const send = ({ email, name, text }) => {
const from = name && email ? `${name} <${email}>` : `${name || email}`
const message = {
from,
to: 'react.nodemailer@gmail.com',
subject: `New message from ${from} at creating-contact-forms-with-nodemailer-and-react`,
text,
replyTo: from
};
return new Promise((resolve, reject) => {
transporter.sendMail(message, (error, info) =>
error ? reject(error) : resolve(info)
)
})
}
export default send
这是api POST路由
var express = require('express');
var config = require('config');
var router = express.Router();
var cors = require('cors');
// @route POST api/send
// @desc Send email on contact page
// @access Public
router.post('/api/send',(req, res, next ) => {
var name = req.body.name
var email = req.body.email
var subject = req.body.subject
var message = req.body.message
var content = `
name: ${name} \n
email: ${email} \n
subject: ${subject} \n
message: ${message} `
var post = {
from: name,
subject: subject,
text: content
}
});
module.exports = router;
我已经试着调试了一个星期左右。我目前正试图找出邮局路线不起作用的原因
我得到的错误代码是500内部服务器错误和404未找到。它将要访问的url是http://localhost:5000/api/send改变
router.post('/api/send',(req, res, next )
到
在您的express应用程序中,您已经拥有了
app.use('/api/send', require('./routes/api/send'));
因此,对于所有“/api/send”,我们将查看文件“/routes/api/send”
按照您定义它的方式,您必须像http://localhost:5000/api/send/api/send.
你会有
router.post('/',(req, res, next ) => {
var name = req.body.name
var email = req.body.email
var subject = req.body.subject
var message = req.body.message
var content = `
name: ${name} \n
email: ${email} \n
subject: ${subject} \n
message: ${message} `
var post = {
from: name,
subject: subject,
text: content
}
});
module.exports = router;
另外,如何将路由移动到它自己的文件。i、 e在服务器上有
app.use(require('./routes/api'));
在./routes/api/index.js中有定义。i、 e
const express = require('express');
const router = express.Router();
router.use('/api/send', require('./send'));
module.exports = router;
改变
到
在您的express应用程序中,您已经拥有了
app.use('/api/send', require('./routes/api/send'));
因此,对于所有“/api/send”,我们将查看文件“/routes/api/send”
按照您定义它的方式,您必须像http://localhost:5000/api/send/api/send.
你会有
router.post('/',(req, res, next ) => {
var name = req.body.name
var email = req.body.email
var subject = req.body.subject
var message = req.body.message
var content = `
name: ${name} \n
email: ${email} \n
subject: ${subject} \n
message: ${message} `
var post = {
from: name,
subject: subject,
text: content
}
});
module.exports = router;
另外,如何将路由移动到它自己的文件。i、 e在服务器上有
app.use(require('./routes/api'));
在./routes/api/index.js中有定义。i、 e
const express = require('express');
const router = express.Router();
router.use('/api/send', require('./send'));
module.exports = router;
您可以直接在express app上注册路线,如下所示
app.post('/api/send',function(){
//..send code
//nodemailer.send("blabla")
});
无需在应用程序和路由器上同时注册路由。您可以直接在express应用程序上注册路由,如下所示:
app.post('/api/send',function(){
//..send code
//nodemailer.send("blabla")
});
代替在应用程序和路由器上注册路由。我们可以查看路由/api/send.jsI添加了它吗我们可以查看路由/api/send.jsI添加了它吗