4.mongoose模块化

该博客介绍了如何使用Mongoose进行模块化数据库连接和操作。通过db.js连接MongoDB,然后在model目录下创建user.js和news.js定义User和News模型。在user-find.js和news-find.js中,展示了查询数据的例子。最后,文章提到了使用console.time进行性能测试,以评估查询效率。
摘要由CSDN通过智能技术生成

mongoose模块化

为了方便开发和维护需要模块化,下边将具体演示

目录

model
	db.js
	user.js
	news.js
test
	user-find.js
	news-find.js

db.js-连接数据库

const mongoose = require('mongoose');

mongoose.connect(
    'mongodb://localhost:27017/dadi',
    {useNewUrlParser: true, useUnifiedTopology: true},
    (err, doc) => {
        if (err) { console.log('err', err); return}
        console.log('连接成功');
    }
)

module.exports = mongoose;

user.js

const mongoose = require('./db');

const UserSchema = mongoose.Schema({
    name: String,
    age: Number,
    status: {
        type: String,
        default: 1
    }
})

module.exports = mongoose.model('User', UserSchema, 'users');

news.js

const mongoose = require('./db');

const NewsSchema = mongoose.Schema({
    title: String,
    author: {
        type: String,
        default: '玄空'
    },
    pic: String,
    status: {
        type: Number,
        default: 1
    }
})

module.exports = mongoose.model('New', NewsSchema, 'news')

使用

user-find.js

const NewsModel = require('../model/news')

NewsModel.find({}, (err, doc) => {
    if(err){ console.log('err: ', err); return }
    console.log('doc: ', doc);
})

运行

node test/user-find.js

user-create.js

const UserModel = require('../model/user')

const user =new UserModel({
    name: 'zhangsan5',
    age: 20
})

user.save((err, doc) => {
    if(err) {
        console.log('err: ', err);
        return;
    }
    console.log('增加成功');
    UserModel.find({}, (err, doc) => {
        if(err){ console.log('err: ', err); return }
        console.log('doc: ', doc);
    })
})

news-find.js

const UserModel = require('../model/user')

UserModel.find({}, (err, doc) => {
    if(err){ console.log('err: ', err); return }
    console.log('doc: ', doc);
})

其他将不再举例

总结

方便使用和维护,db.js 连接数据库,model中定义schema和model,外部文件中调用model

性能测试

使用console.time来查看程序运行的性能。

console.time('user');
const UserModel = require('./model/user')
console.timeEnd('user');

console.time('news');
const NewsModel = require('./model/news')
console.timeEnd('news');

console.time('js');
for(i=0; i< 1000000000; i++) {
    // 要运行2s
}
console.timeEnd('js');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值