Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Javascript 使用NodeEmailer和reactjs向用户提交邮件的快速路由出错_Javascript_Node.js_Express_Reactjs_Nodemailer - Fatal编程技术网

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

Javascript 使用NodeEmailer和reactjs向用户提交邮件的快速路由出错,javascript,node.js,express,reactjs,nodemailer,Javascript,Node.js,Express,Reactjs,Nodemailer,我试图向使用reactjs和NodeEmailer提交应用程序的用户发送邮件,但我收到以下错误消息,称找不到路由 Warning: Location "/contact?name=milan&email=xedikaka%40gmail.com&phone=9843698469&city=Biratnagar&state=biratnagar&company=company&title=developer&home-airport=Truc

我试图向使用reactjs和NodeEmailer提交应用程序的用户发送邮件,但我收到以下错误消息,称找不到路由

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);
});
app.get('*',函数(req,res){
var location=createLocation(请求url)
匹配({routes:routes,location:location},函数(错误,重定向位置,renderOps){
var handler=React.createElement(RoutingContext,objectAssign({},RenderOps))
var content=React.renderToString(处理程序);
var title=DocumentTitle.revind();
res.render('index',{content:content})
})
});
app.post('/contact',函数(请求、回复、下一步){
var to=req.body.email;
var transporter=nodeEmailer.createTransport({
服务:'Gmail',
认证:{
用户:'******@gmail.com',
通过:“************”
}
});
var mailpoptions={
从:“”,
致:致,,
主题:'网站联系表',
文本:“你好!”+req.body.name
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
log('error is',error);
res.redirect('/');
}否则{
console.log('messagesent');
res.redirect('/');
}
})
});
var server=app.listen(端口,函数(){
log('在端口上运行的服务器'+端口);
});
JoinUsForm.js(/join-us)

render:function(){
返回(
陈述
);
}
});
module.exports=JoinUsForm;
我做错了什么?这条路线怎么了

更新:

在表单中定义方法之后,我得到了这个新错误

因此,如果您的express版本>=4,请使用

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());
这会解决你的问题


谢谢

如果您的express版本>=4,请使用

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());
这会解决你的问题


谢谢

您的快速路线是POST/contact,但是表单使用GET(默认),因为您没有声明方法属性。在定义方法POST后,我用新的错误更新了我的问题。我也添加了这个app.use(express.bodyParser());仍然显示错误无法读取未定义的属性“email”。您的快速路由为POST/contact,但表单使用GET(默认),因为您没有声明方法属性。在定义方法POST后,我已使用新错误更新了我的问题。我也添加了此app.use(express.bodyParser());仍然显示错误,无法读取未定义的属性“email”。