【发布时间】:2015-05-28 13:11:37
【问题描述】:
我正在构建 Web 应用程序来跟踪棒球运动员。目前与球员关联的唯一数据属性是 fName 和 lName。我正在使用 Node.js Express 4、mongoose 和 Jade。当您单击播放器时,我的 get 请求正常运行,它会将您带到 localhost:3000/player/:id 并将播放器信息正确加载到视图中。我的 post 方法存在问题并使其实际更新提交的玩家信息。我的 post 方法不是更新播放器,而是添加一个新播放器。
这是似乎正常运行的获取请求的代码:
router.get('/:id', function(req,res){
Player.find({_id: req.params.id}, function(err, player){
if(err){
res.redirect('/error');
}else{
res.render(
'editPlayer',
player[0]
);
}
});
});
这是创建新播放器而不更新当前播放器的帖子的代码:
router.post('/:id', function(req,res){
Player.where({ _id: req.params.id }).update({ fName: req.body.fName, lName: req.body.lName });
res.redirect('player');
});
这里是 editPlayer.jade,其中包含我用来更新播放器的表单:
extends layout
block content
block content
h1 #{fName} #{lName}
form(method="post" action="/#{_id}")
input(type="hidden" value=_id name="id")
label(for="fName") First Name:
input(type="text", name="fName", value=fName)
label(for="lName") Last Name:
input(type="text", name="lName", value=lName)
input(type="submit", value="Save")
如果有更多有用的信息,请告诉我。提前感谢您的时间, -弗雷德·k
【问题讨论】:
标签: node.js express mongoose pug