Sou*_*rce 3 mongoose mongodb node.js mongoose-schema
我正在将图像从IOS应用程序上传到Firebase,Firebase向我返回包括type URL的元数据URL。
是否应该String像下面的代码一样将类型存储在数据库中?或URLs 有特定类型?
var schema = new Schema({
downloadURL: { type: String, createdDate: Date.now }
})
Run Code Online (Sandbox Code Playgroud)
Mongoose 没有 URL 模式,您可以存储在字符串中并使用mongoose-Validator进行验证
这是它的语法
validate: {
validator: value => validator.isURL(value, { protocols: ['http','https','ftp'], require_tld: true, require_protocol: true }),
message: 'Must be a Valid URL'
}
Run Code Online (Sandbox Code Playgroud)
希望对你有帮助
嗯,根据文档, Monngoose没有URL的架构类型。您可以只使用带有RegExp的字符串来验证它,也可以使用一些像这样的定制类型
var mongoose = require('mongoose');
require('mongoose-type-url');
var UserSchema = new mongoose.Schema({
url: {
work: mongoose.SchemaTypes.Url,
profile: mongoose.SchemaTypes.Url
}
});
Run Code Online (Sandbox Code Playgroud)
您可以使用正则表达式来验证这样的 URL,
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.');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3292 次 |
| 最近记录: |