【发布时间】:2013-03-21 06:50:02
【问题描述】:
我是 Node.js 的新手,在 node.js 中自定义验证消息时遇到问题。我使用 CRUD 操作使用 Compound JS 创建了一个简单的应用程序。在我的应用程序中有一个名为“id”的字段。 “id”字段只接受整数值。然后我使用 model/user.js 中的以下代码验证该字段。
module.exports = function (compound, User) {
var num = /^\s*\d+\s*$/;
User.validatesFormatOf('id', {with: num, message:"is not a number"});
};
通过使用上面的代码,它可以正常工作。但我也想检查该字段是否为空白。然后我稍微修改一下代码。修改后的代码如下:
module.exports = function (compound, User) {
var num = /^\s*\d+\s*$/;
User.validatesFormatOf('id', {with: num, message: {blank: "can't be blank", with: "is not a number"}});
};
如果该字段为空,则验证消息将显示为“Id 不能为空”。但是当我在 id 字段中输入数字以外的值时,验证错误消息将是“Id [object Object]”。我认为关键字 with 不受支持。这里是否有任何其他关键字,如“空白”或“分钟”,以便我可以将验证消息作为“ID 不是数字”来获取。
我找到了一个解决方案,所以修改后的 user.js 版本是这样的:
module.exports = function (compound, User) {
var num = /^\s*\d+\s*$/;
User.validatesPresenceOf('id', {message: "can't be blank"});
User.validatesFormatOf('id', {with: num, message:"is not a number"});
};
上述代码的问题在于它同时显示了两条验证消息,即同时显示默认和自定义空白消息。我的要求是一次只显示一个字段的一条验证消息。这可能吗?
【问题讨论】:
标签: node.js express railway.js compoundjs