nodejs nedb 封装库与使用方法示例
本文实例讲述了nodejsnedb封装库与使用方法。分享给大家供大家参考,具体如下:
libs/nedb.js
constDatastore=require('nedb'); functionDB(database){ letoptions={ filename:database, autoload:true, }; this.db=newDatastore(options); } DB.prototype.limit=function(offset,limit){ this.offset=offset||0; this.limit=limit||15; returnthis; } DB.prototype.sort=function(orderby){ this.orderby=orderby; returnthis; } DB.prototype.find=function(query,select){ returnnewPromise((resolve,reject)=>{ letstmt=this.db.find(query||{}); if(this.orderby!==undefined){ stmt.sort(this.orderby); } if(this.offset!==undefined){ stmt.skip(this.offset).limit(this.limit); } if(select!=undefined){ stmt.projection(select||{}); } stmt.exec((err,docs)=>{ if(err){ returnreject(err); } resolve(docs); }) }) }; DB.prototype.findOne=function(query,select){ returnnewPromise((resolve,reject)=>{ letstmt=this.db.findOne(query||{}); if(this.sort!==undefined){ stmt.sort(this.sort); } if(select!=undefined){ stmt.projection(select||{}); } stmt.exec((err,doc)=>{ if(err){ returnreject(err); } resolve(doc); }) }) } DB.prototype.insert=function(values){ returnnewPromise((resolve,reject)=>{ this.db.insert(values,(err,newDoc)=>{ if(err){ returnreject(err); } resolve(newDoc); }) }) } DB.prototype.update=function(query,values,options){ returnnewPromise((resolve,reject)=>{ this.db.update(query||{},values||{},options||{},(err,numAffected)=>{ if(err){ returnreject(err); } resolve(numAffected); }) }); } DB.prototype.remove=function(query,options){ returnnewPromise((resolve,reject)=>{ this.db.remove(query||{},options||{},(err,numAffected)=>{ if(err){ returnreject(err); } resolve(numAffected); }) }); } module.exports=(database)=>{ returnnewDB(database); }
test.js
constdb=require('./libs/nedb')('testdb'); (asyncfunction(){ awaitdb.insert({number:12}); awaitdb.insert({number:11}); awaitdb.insert({number:13}); letres=awaitdb.sort({number:-1}).limit(0,2).find(); console.log(res); })();
执行命令
nodemontest.js
希望本文所述对大家node.js程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。