我正在将图片从IOS应用程序上传到Firebase,后者向我返回包含URL
类型网址的元数据。
我应该在数据库中存储String
类型,如下面的代码吗?或URL
s的具体类型?
var schema = new Schema({
downloadURL: { type: String, createdDate: Date.now }
})
答案 0 :(得分:5)
嗯,根据docs Monngoose没有URL的架构类型。您可以使用带有RegExp的字符串来验证它或使用某些自定义类型,如this one
var mongoose = require('mongoose');
require('mongoose-type-url');
var UserSchema = new mongoose.Schema({
url: {
work: mongoose.SchemaTypes.Url,
profile: mongoose.SchemaTypes.Url
}
});
答案 1 :(得分:0)
猫鼬没有URL架构,您可以使用mongoose-Validator
存储在String中并进行验证这是它的语法
validate: {
validator: value => validator.isURL(value, { protocols: ['http','https','ftp'], require_tld: true, require_protocol: true }),
message: 'Must be a Valid URL'
}
希望这会对您有所帮助
答案 2 :(得分:0)
您可以使用正则表达式来验证网址,
const mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
downloadURL: {
type: String,
required: 'URL can\'t be empty',
unique: true
},
description: {
type: String,
required: 'Description can\'t be empty',
}
});
userSchema.path('downloadURL').validate((val) => {
urlRegex = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?/;
return urlRegex.test(val);
}, 'Invalid URL.');