繁体   English   中英

使用nodemailer和reactjs向用户提交邮件的快速路由出错

[英]Error in express route for submitting the mail to user using nodemailer and reactjs

我尝试向使用reactjs和nodemailer提交应用程序的用户发送邮件,但是我收到以下错误,说找不到路由。

Warning: Location "/contact?name=milan&email=xedikaka%40gmail.com&phone=9843698469&city=Biratnagar&state=biratnagar&company=company&title=developer&home-airport=Truckee+%2F+Tahoe+%28TRK%29&frequent-destinations=Monterey+%28MRY%29&travel-type=business&travel-frequency=daily&travel-prefs=Saturday" did not match any routes

这是我的代码

app.get('*', function(req, res) {
  var location = createLocation(req.url)
  match({routes: Routes, location: location}, function(error, redirectLocation, renderProps) {
    var handler = React.createElement(RoutingContext, objectAssign({}, renderProps))
    var content = React.renderToString(handler);
    var title = DocumentTitle.rewind();
    res.render('index', {content: content})
  })
});

app.post('/contact', function(req,res,next){
    var to = req.body.email;
    var transporter = nodemailer.createTransport({
        service:'Gmail',
        auth:{
            user:'******@gmail.com',
            pass:'***********'
        }
    });

     var mailOptions = {
      from: '<noreply@domain.io>',
      to: to,
      subject: 'Website contact form',
      text: 'Hello!'+req.body.name
    };

    transporter.sendMail(mailOptions, function(error,info){
        if(error){
            console.log('error is',error);
            res.redirect('/');
        }else{
            console.log('message sent');
            res.redirect('/');
        }
    })

});

var server = app.listen(port, function() {
  console.log('Server running on port ' + port);
});

JoinUsForm.js(/加入-US)

render: function() {
    return (
      <div className='join-us-form-wrapper'>
        <form action = "/contact" method="post" onValidSubmit={this.onSubmit} onValid={this.enableButton} onInvalid={this.disableButton}>

          <TextInput name='name' label='Full Name' placeHolder='Full Name' required/>
          <TextInput name='email' type='email' validations="isEmail" label='Your Email' placeHolder='Your Email' required/>
          <TextInput name='phone' type='phone' label='Your Phone' placeHolder='Your Phone' required/>

          <TextInput name='city' label='City' placeHolder='City' required/>

          <div className='input-wrapper'>
            <label htmlFor='state'>State</label>
            <input type='text' name='state' placeholder='State' />
          </div>

          <TextInput name='company' label='Company Name' placeHolder='Company Name'/>
          <TextInput name='title' label='Job Title' placeHolder='Job Title'/>


          <SelectInput name='home-airport' label='What is your home airport?' opts={homeAirportOptions} required />
          <MultiSelectInput name='frequent-destinations' label='Which Destinations Do You Travel to Frequently?' opts={destinationOptions} required />

          <SelectInput name='travel-type' label='Do you travel for business or pleasure?' opts={['business', 'pleasure']} required />
          <SelectInput name='travel-frequency' label='How often do you travel?' opts={['daily', 'weekly', 'monthly']} required />

          <SelectInput name='travel-prefs' label='Which days do you prefer to travel?' opts={travelPrefsOptions} required />


          <input type="submit" className='submit-button button' value='Submit Your Application'/>
        </form>
      </div>
    );
  }

});

module.exports = JoinUsForm;

我做错了什么? 路线有什么问题?

更新:

在表单中定义方法后,我得到了这个新错误 在此输入图像描述

因此,如果您的快递版本> = 4使用

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());

这将解决您的问题。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM