首页 > 语言 > JavaScript > 正文

nodejs nedb 封装库与使用方法示例

2024-05-06 15:44:09
字体:
来源:转载
供稿:网友

本文实例讲述了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);})();

执行命令

nodemon test.js

希望本文所述对大家node.js程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选