前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mongoose中的修饰符

Mongoose中的修饰符

作者头像
越陌度阡
发布2020-11-26 12:32:32
1.2K0
发布2020-11-26 12:32:32
举报

Mongoose提供了修饰符功能用于对存取的数据进行一些加工,常用的修饰符有以几下几种:

1. 预定义修饰符

1. lowercase 转小写

2. uppercase 转大写

3. trim 去掉前后空格

2. 自定义修饰符

1. set 设置数据,会将修饰过的数据处理入库。

2. get 获取实例数据时修饰,不会影响入库的数据,使用较少。

3. 预定义修饰符与自定义修饰符 set 实例(常用)

连接数据库,文件名为db.js

代码语言:javascript
复制
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test', { useNewUrlParser: true }, function (err) {
    if (err) {
        console.log(err);
        return;
    }
    console.log('数据库连接成功')
});
module.exports = mongoose;

定义schema、生成模型,文件名为focus.js

代码语言:javascript
复制
// 引入自定义模块化的数据库连接
var mongoose = require('./db.js');
// 定义schema
var FocusSchema = mongoose.Schema({
    title: {
        type: String,
        // 对title字段去掉前后的空格
        trim: true
    },
    pic: String,
    redirect: {
        type: String,
        // 自定义设置数据,parmas为当前的值
        // 为域名添加协议
        set(parmas) {
            if (!parmas) {
                return ''
            } else {
                if (parmas.indexOf('http://') != 0 && parmas.indexOf('https://') != 0) {
                    return 'http://' + parmas;
                }
                return parmas
            }
        }
    },
    status: {
        type: Number,
        default: 1
    }
})

module.exports = mongoose.model('Focus', FocusSchema, 'focus');

在需要进行数据操作的页面引入focus.js ,进行数据操作

代码语言:javascript
复制
var FocusModel = require('./model/focus.js');
var focus = new FocusModel({
    title: " 国际新闻 ",
    pic: 'http://www.xxx.com/x.png',
    redirect: 'www.baidu.com'
});

focus.save(function (err) {
    if (err) {
        console.log(err);
        return;
    }
    FocusModel.find({}, function (err, docs) {
        if (err) {
            console.log(err);
            return;
        }
        console.log(docs);
        // "国际新闻"将会去掉前后的空格
        // www.baidu.com 将会变成 http://www.baidu.com 
    })
});

4. 自定义修饰符 get 实例(不常用)

连接数据库,文件名为db.js

代码语言:javascript
复制
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test', { useNewUrlParser: true }, function (err) {
    if (err) {
        console.log(err);
        return;
    }
    console.log('数据库连接成功')
});
module.exports = mongoose;

定义schema、生成模型,文件名为 user.js

代码语言:javascript
复制
var mongoose=require('./db.js');
var UserSchema=mongoose.Schema({
    name:{
        type:String,
        // 将获取的实例数据添加标识符
        get(params){   
            return "姓名:" + params
        }   
    },
    age:{
        type:Number,
        // 将获取的实例数据添加标识符
        get(params){
            return "年龄:"+ params;
        }
    },   
    status:{
        type:Number,
        default:1
    }
})
module.exports=mongoose.model('User',UserSchema,'user');

在需要进行数据操作的页面引入user.js ,进行数据操作,注意只能作用于生成的实例

代码语言:javascript
复制
var UserModel = require('./model/user.js');

var user = new UserModel({
    name: '张三',
    age: 20
});

console.log(user.name, user.age);
// 姓名:张三,年龄:20
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 预定义修饰符
  • 2. 自定义修饰符
  • 3. 预定义修饰符与自定义修饰符 set 实例(常用)
  • 4. 自定义修饰符 get 实例(不常用)
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档