Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 错误空响应_Node.js_Reactjs_Express_Mern - Fatal编程技术网

Node.js 错误空响应

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({

我正试图添加一个联系方式,将发送到一个专用的gmail帐户。我已经让联系人表单独立工作,但当我尝试将其添加到我的工作项目时,它不工作,我得到的错误是:

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添加了它吗