Javascript 使用NodeEmailer和reactjs向用户提交邮件的快速路由出错
我试图向使用reactjs和NodeEmailer提交应用程序的用户发送邮件,但我收到以下错误消息,称找不到路由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
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”。