我是 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"});
};
上面代码的问题是它同时显示两条验证消息,即同时显示默认和自定义空白消息。我的要求是一次只显示一个字段的验证消息。这可能吗?