我正在使用 node.js 和 express 来制作一个 CRUD Web 应用程序,并且我正在尝试研究如何在服务器端验证失败时让一个 Flash 消息出现在数据输入表单上。我正在使用 express-flash 来发送 flash 消息。
验证代码有效,返回错误,然后我创建了 flash 消息:
var errors = validateForm(req);
if(errors){
req.flash('info',errors);
res.render('edit', {messages: req.flash('info')});
}
并在 edit.jade 文件中显示消息:
if messages.info
p #{messages.info}
问题是我正在编辑一个特定的对象,而url不是/edit,而是/edit/objectID。页面的获取是这样的:
router.get('/edit/:id', function(req, res) {
var db = req.db;
var collection = db.get('mydb');
collection.find({ID: req.params.id},{},function(e,docs){
res.render('edit', {"object" : docs});
});
});
是否可以在发送 POST 后添加用于服务器端验证的闪存消息而不会丢失页面 ID?我不需要编辑中的所有数据,会有客户端验证希望能发现任何错误,但我希望服务器端验证错误导致用户在离开时登陆同一个对象页面。