2016-04-07 30 views
1

kullanarak kullanıcıya posta göndermek için ekspres yolunda hata reajs ve nodemailer kullanarak uygulamayı gönderen kullanıcıya posta göndermeyi denedim ama rota bulunamadı söyleyerek hata alıyorum. İştenodemailer ve reactjs

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 

kodum

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: '<[email protected]>', 
     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 olan (/ join-bizi)

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; 

ben yanlış ne yaptın? Rotada neyin var?

GÜNCELLEME:

Ben enter image description here

+0

sizin açık rota POST/kontak, ancak yöntem bildirmek yok çünkü formu kullanım GET (varsayılan) yöntemi POST tanımlayan sonra yeni hata ile sorumu güncelledik – somallg

+0

bağlıyor. – milan

+0

Bunu da ekledim app.use (express.bodyParser()); Hala hata gösteriliyor undefined özelliği 'e-posta' okuyamaz. – milan

cevap

0

formda yöntemi tanımlayan sonra bu yeni hatayı alıyorum Yani ekspres sürümü Bu sorunu çözecek kullanımı

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

> = 4 ise.

Teşekkür