modelman
modelman(模型侠)是一个模型类库,可以帮助你轻松的在各种数据格式之间进行转换。比如把modelman的模型转化为mongoose的模型,或者把modelman的模型转化为前端表单模型。
Installation
This is a Node.js module available through the npm registry.
Before installing, download and install Node.js. Node.js 8.0 or higher is required.
Installation is done using the
npm install
command:
$ npm install modelman
Importing
// Using Node.js `require()`const modelman = ; // Using ES6 imports;
ModelmanTypes
Modelman兼容大部分的 mongoose 的数据类型。Modelman目前支持的数据类型如下:
类型名称 | 描述 |
---|---|
Any | 任意数据类型 |
Array | 普通数组对象 |
Boolean | 布尔值 |
Buffer | Buffer对象 |
ChinaId | 中国身份证号类型 |
Date | 日期对象 |
邮箱类型 | |
Float | 浮点数 |
Map | Map对象 |
Mixed | 混合类型,可以放任意类型数据 |
Number | 普通数字 |
Object | 普通对象 |
ObjectId | ObjectId, mongodb的唯一id类型 |
Password | ispro.password 类型 |
String | 普通字符串 |
Timestamp | 时间戳类型 |
Url | 网址类型 |
Username | ispro.username 类型 |
API
调用 | 说明 |
---|---|
myModel.assign(fields: object): void | 为这个模型定义字段以及字段的类型。 |
myModel.setData(object: object): myModel | 为某个字段设置值,可以传入一个对象设置多个值。 |
myModel.to.json(): JSON | 转化为键值对的json对象。 |
myModel.to.mongoose(): JSON | 转化为mongoose的model的数据格式。 |
myModel.validator.all(): JSON | 校验全部的数据,并返回校验失败的字段名和字段显示名。 |
myModel.validator.part(): JSON | 只校验有效值的数据,并返回校验失败的字段名和字段显示名。 |
一个例子
const modelman = ; //创建一个新的modelman的模型let m = name: 'article' displayName: '文章'; //为这个模型定义字段以及字段的类型。m; //为某个字段设置值,可以传入一个对象设置多个值。m; //转化为键值对的json对象。let json = mto; //转化为mongoose的model的数据格式。let mongooseModel = mto; consoleconsole;consoleconsole;consoleconsole;
前端例子
结合vue使用modelman的模型自动渲染表单组件。
github地址:https://github.com/lisniuse/vue-modelman-example
assign方法参数说明
assign方法接受一个对象作为参数,这个对象中值的参数说明如下:
参数名 | 说明 |
---|---|
type |
modelman的数据类型,可以用modelman.type[type]来赋值type,也可以直接使用类型的字符串形式,比如'String'。 |
n 或者 name |
表示字段的显示名称,可以是中文也可以是英文,比如它可以表示表单的label。 |
r 或者 required |
表示是否是必填项目。 |
f 或者 formField |
表示是否是前端的表单的字段类型,比如某条数据的创建时间(createTime)就不属于表单字段类型。 |
t 或者 tableField |
表示是否是前端的列表或者表格需要展示的字段类型。 |
d 或者 default 或者 defaultValue |
表示该字段的默认值。 |
p 或者 placeholder |
表示该字段的默认提示文本。 |
min |
在number中用于表示最小值限制,在字符串中用于表示最小字符串长度限制。 |
max |
在number中用于表示最大值限制,在字符串中用于表示最大字符串长度限制。 |
ref |
主要是mongoose的使用类型,表示关联。 |
待完成
一、目前只支持的mongoose的模型的转化,还有很多数据库的模型未被支持:
- Sqlite
- PostgreSQL
- Oracle
- MySQL
- SQL Server
二、目前只支持简单的类型和空判断,还需要更完整的校验支持。
其他
欢迎贡献代码!