nodejs nedb 封裝庫與使用方法示例
更新時間:2020年02月06日 12:48:34 作者:李瓊濤
這篇文章主要介紹了nodejs nedb 封裝庫與使用方法,結(jié)合實例形式分析了nodejs nedb.js封裝庫的定義與使用技巧,需要的朋友可以參考下
本文實例講述了nodejs nedb 封裝庫與使用方法。分享給大家供大家參考,具體如下:
libs/nedb.js
const Datastore = require('nedb');
function DB(database) {
let options = {
filename: database,
autoload: true,
};
this.db = new Datastore(options);
}
DB.prototype.limit = function(offset, limit) {
this.offset = offset || 0;
this.limit = limit || 15;
return this;
}
DB.prototype.sort = function(orderby) {
this.orderby = orderby;
return this;
}
DB.prototype.find = function(query, select) {
return new Promise((resolve, reject) => {
let stmt = 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) {
return reject(err);
}
resolve(docs);
})
})
};
DB.prototype.findOne = function(query, select) {
return new Promise((resolve, reject) => {
let stmt = this.db.findOne(query || {});
if (this.sort !== undefined) {
stmt.sort(this.sort);
}
if (select != undefined) {
stmt.projection(select || {});
}
stmt.exec((err, doc) => {
if (err) {
return reject(err);
}
resolve(doc);
})
})
}
DB.prototype.insert = function(values) {
return new Promise((resolve, reject) => {
this.db.insert(values, (err, newDoc) => {
if (err) {
return reject(err);
}
resolve(newDoc);
})
})
}
DB.prototype.update = function(query, values, options) {
return new Promise((resolve, reject) => {
this.db.update(query || {}, values || {}, options || {}, (err, numAffected) => {
if (err) {
return reject(err);
}
resolve(numAffected);
})
});
}
DB.prototype.remove = function(query, options) {
return new Promise((resolve, reject) => {
this.db.remove(query || {}, options || {}, (err, numAffected) => {
if (err) {
return reject(err);
}
resolve(numAffected);
})
});
}
module.exports = (database) => {
return new DB(database);
}
test.js
const db = require('./libs/nedb')('testdb');
(async function() {
await db.insert({number: 12});
await db.insert({number: 11});
await db.insert({number: 13});
let res = await db.sort({number: -1}).limit(0, 2).find();
console.log(res);
})();
執(zhí)行命令
nodemon test.js
希望本文所述對大家node.js程序設(shè)計有所幫助。
相關(guān)文章
Linux環(huán)境部署node服務(wù)并啟動詳細(xì)步驟
最近用node.js開發(fā)了一個web項目,下面這篇文章主要給大家介紹了關(guān)于Linux環(huán)境部署node服務(wù)并啟動的詳細(xì)步驟,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
npm安裝依賴報錯ERESOLVE?unable?to?resolve?dependency?tree的解決方
當(dāng)我們拿到一個前端項目的時候,想要把它運(yùn)行起來,首先是要給它安裝依賴,下面這篇文章主要給大家介紹了關(guān)于npm安裝依賴報錯ERESOLVE?unable?to?resolve?dependency?tree的解決方法,需要的朋友可以參考下2023-04-04
從零開始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例
這篇文章主要介紹了Node.js設(shè)置HTTP頭的方法,詳細(xì)分析了常見HTTP頭的功能、原理及相關(guān)設(shè)置操作技巧,需要的朋友可以參考下2017-04-04
Node.js API詳解之 string_decoder用法實例分析
這篇文章主要介紹了Node.js API詳解之 string_decoder用法,結(jié)合實例形式分析了Node.js API中string_decoder的功能、用法及操作注意事項,需要的朋友可以參考下2020-04-04
利用yarn實現(xiàn)一個webpack+react種子
其實以前就寫過如何使用React-router和Webpack快速構(gòu)建一個react程序。后來發(fā)現(xiàn)版本太老,于是乎最近又重新組織了下結(jié)構(gòu),使用最近發(fā)布的yarn作為包管理工具,介紹下基本安裝步驟,有需要的朋友們下面來一起看看吧。2016-10-10

