这是创建和编辑表单数据的经典案例。我有一个复杂的表单,假设要渲染所有字段以验证它,但它不起作用。对于这种情况,我创建了一个简单的示例来说明我的担忧并尝试了解发生了什么。
在这个示例应用程序主体解析器和方法覆盖中:
app.use(express.bodyParser());
app.use(express.methodOverride());
现在我在user.jade中有一个简单的表单:
doctype 5
html
header
title Add new user
body
h4 User - Add
form(id='userForm', method='post', action='/user/save')
label(for='name') Name
input(type='text', id='name', name='name')
label(for='address') Address
input(type='text', id='address', name='address')
input(type='submit', value='Save')
配置了GET和POST HTTP 方法:
app.get('/user/new', user.create); //create new user
app.post('/user/save', user.save); //save or edit user in validation process
最后是“创建”和“编辑/保存”功能:
exports.create = function(req, res) {
res.render('user');
};
exports.save = function(req, res) {
var name = req.body.name;
var address = req.body.address;
//do some validation
//...
//return it back to page to fix wrong fields
res.render('user', { name: name, address: address });
};
为什么我渲染 user.jade,所以字段没有填充?不能使用 res.render 填写页面表单?提前致谢!