我希望用户会> 18岁。因此,输入的出生日期应为> 18岁。
哪种方法是最好的?
我有一个注册组件,并且我有这样的字段:
<mat-form-field id="birth-date">
<input matInput [matDatepicker]="picker" placeholder="mm/dd/yy" name="birthDate" [(ngModel)]="birthDate">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
在我的usersRouter中,我具有注册功能:
router.post('/users/register', (req, res) => {
...
const user = new User({
...
birthDate: req.body.birthDate,
...
});
...
});
此外,我使用mongo,在UserSchema中,我将其作为生日:
birthDate: {
type: Date,
required: true
}
谢谢!
答案 0 :(得分:0)
为此花点时间。当您使用nodeJs时,它应该相当容易。 array = [
{
fruit: "Apple",
quantity: "11",
},
{
fruit: "Banane",
quantity: "3",
},
{
fruit: "Kiwi",
quantity: "5",
},
{
fruit: "Ananas",
quantity: "10",
}
]
。您可以像这样
https://momentjs.com/
现在检查年份是否大于18。如果不是这样,则在小于18的情况下将错误返回给用户。但是最好的方法是在前端进行检查,并在可能的地方给出错误。
答案 1 :(得分:0)
您可以用猫鼬编写自定义验证器
birthDate: {
type: Date,
validate: {
validator: function(v) {
v.setFullYear(v.getFullYear()+18)
const currentTime = new Date();
currentTime.setHours(0,0,0,0);
return v.getTime() <= currentTime.getTime();
},
message: props => 'You must be 18 years old.'
},
required: true
}