我试图保存一个法国号码电话,例如:060908...这是我的身体要求:
newAppointment.phone = req.body.phone;
我的架构:
phone: { type:Number, required: true }
和我的数据:06这将返回一个错误:语法错误:意外的数字。当我将其转换为字符串时,它是remove0。答案:使用字符串。
cuxqih211#
如果你想把0放在第一位,你必须在你的模式中把电话类型作为字符串,因为我们知道把0放在第一位不会改变号码的值因此,您模式如下所示:
phone: { type: String, required: true }
然后以“0609084542”发送您的数据
vuktfyat2#
要存储类似0609084542的电话,不能使用Number字段。请改用String字段。
Number
String
我认为你需要一些关于类型的帮助(* 字符串,数字aka整数/字符/长/浮点/双 *)。Here您有一个堆栈溢出帖子,讨论数字中的前导0。
const toto = 0652;
待知:
不同于
const toto = 652;
const toto = '0652';
mzmfm0qo3#
如果你真的想把电话号码存储为一个数字,可以使用get / set机制,所以,你的模式肯定可以把电话号码插入到一个数字中,然而,set会把字符串转换成一个数字,只需去掉前导的0,然后get会把数字转换成字符串,把前导的0放回到前面。
phone: { type: Number, get: v => v.slice(1)*1, set: v => '0'+v.toString() } toJSON: { getters: true };
3条答案
按热度按时间cuxqih211#
如果你想把0放在第一位,你必须在你的模式中把电话类型作为字符串,因为我们知道把0放在第一位不会改变号码的值
因此,您模式如下所示:
然后以“0609084542”发送您的数据
vuktfyat2#
要存储类似0609084542的电话,不能使用
Number
字段。请改用String
字段。我认为你需要一些关于类型的帮助(* 字符串,数字aka整数/字符/长/浮点/双 *)。
Here您有一个堆栈溢出帖子,讨论数字中的前导0。
待知:
不同于
不同于
mzmfm0qo3#
如果你真的想把电话号码存储为一个数字,可以使用get / set机制,所以,你的模式肯定可以把电话号码插入到一个数字中,然而,set会把字符串转换成一个数字,只需去掉前导的0,然后get会把数字转换成字符串,把前导的0放回到前面。