app.put('/users/:name',function(req,res){
var b = req.body;
Users.update(
{name:req.params.name},
{name:b.name,age:b.age,email:b.email},
function(err){
res.redirect("/users/"+b.name);
});
});
h1 new User
form(method="POST",action="/users") p Name: input#name(type="text", name="name") p Email: input#email(type="email", name="email") p Age: input#age(type="number" ,name="age") p: button(type="submit") Create
其他的添加删除都行就是修改不行不知道错在哪
form(method="POST",action="/users")
form method是POST,对应是app.post,而非app.put action是/users,无后缀,只能对应app.post('/users’,function(req,res){… 若action是/users/alice,才能对应app.post('/users/:name’,function(res,res){…
h1 update User
form(method="POST",action=’/users/#{user.name}’) input(type="hidden", name="_method", value="put") p Name: input#name(type="text", name="name", value="#{user.name}") p Email: input#email(type="email", name="email", value="#{user.email}") p Age: input#age(type="number" ,name="age", value="#{user.age}") p: button(type="submit") Update 这样的话还是不行的说
@a5205804224 express的日志模块启用否,点击Update提交按钮后的日志输出贴出来。 如果还没启用日志模块,在express初始化语句 var app=express(); 之后加入app.use(express.logger(‘tiny’));
PS:就撇下一句“ 这样的话还是不行的说”…至少贴下相关的输出信息啊,多加几句console.log,将参数打印出来啊
@a5205804224 很明显,点击update后根本没向服务器提交,也就是说问题出于jade生成的html页面。暂且不说浏览器本身对html5可能的兼容问题,目前最大的可能就是update的button tag并未包含于form tag之内。请检查
p: button(type="submit") Update
这行的缩进真的正确吗…有没有少打几个空格。 如果确认缩进正确,请在回复中贴出浏览器端页面对应的html代码。