最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ì)步驟

    Linux環(huán)境部署node服務(wù)并啟動詳細(xì)步驟

    最近用node.js開發(fā)了一個web項目,下面這篇文章主要給大家介紹了關(guān)于Linux環(huán)境部署node服務(wù)并啟動的詳細(xì)步驟,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 詳解nodejs 配置文件處理方案

    詳解nodejs 配置文件處理方案

    這篇文章主要介紹了詳解nodejs 配置文件處理方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • npm安裝依賴報錯ERESOLVE?unable?to?resolve?dependency?tree的解決方法

    npm安裝依賴報錯ERESOLVE?unable?to?resolve?dependency?tree的解決方

    當(dāng)我們拿到一個前端項目的時候,想要把它運行起來,首先是要給它安裝依賴,下面這篇文章主要給大家介紹了關(guān)于npm安裝依賴報錯ERESOLVE?unable?to?resolve?dependency?tree的解決方法,需要的朋友可以參考下
    2023-04-04
  • 用Node.js遍歷多級目錄處理文件的代碼詳解

    用Node.js遍歷多級目錄處理文件的代碼詳解

    在日常開發(fā)中,處理大量的文件操作是一個常見的需求,特別是在圖像處理和存檔管理領(lǐng)域,本文給大家介紹了如何用Node.js遍歷多級目錄處理文件,文章給出了主要步驟和完整代碼,需要的朋友可以參考下
    2024-06-06
  • 從零開始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例

    從零開始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例

    這篇文章主要介紹了Node.js設(shè)置HTTP頭的方法,詳細(xì)分析了常見HTTP頭的功能、原理及相關(guān)設(shè)置操作技巧,需要的朋友可以參考下
    2017-04-04
  • Nodejs本地部署DeepSeek的教程詳解

    Nodejs本地部署DeepSeek的教程詳解

    DeepSeek作為一款開源且性能強大的大語言模型,提供了靈活的本地部署方案,讓用戶能夠在本地環(huán)境中高效運行模型,同時保護數(shù)據(jù)隱私,本文主要為大家詳細(xì)介紹了Nodejs本地部署DeepSeek的相關(guān)知識,需要的可以了解下
    2025-02-02
  • Node.js API詳解之 string_decoder用法實例分析

    Node.js API詳解之 string_decoder用法實例分析

    這篇文章主要介紹了Node.js API詳解之 string_decoder用法,結(jié)合實例形式分析了Node.js API中string_decoder的功能、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • node版本切換與版本升級降級教程(win)

    node版本切換與版本升級降級教程(win)

    nvm是一個node的版本管理工具,可以簡單操作node版本的切換、安裝、查看,下面這篇文章主要給大家介紹了關(guān)于node版本切換與版本升級降級教程的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 詳解nodejs爬蟲程序解決gbk等中文編碼問題

    詳解nodejs爬蟲程序解決gbk等中文編碼問題

    本篇文章主要介紹了nodejs爬蟲程序解決gbk等中文編碼問題,解決了網(wǎng)頁的編碼與nodejs默認(rèn)編碼不一致造成的亂碼問題,有興趣的可以了解一下
    2017-04-04
  • 利用yarn實現(xiàn)一個webpack+react種子

    利用yarn實現(xiàn)一個webpack+react種子

    其實以前就寫過如何使用React-router和Webpack快速構(gòu)建一個react程序。后來發(fā)現(xiàn)版本太老,于是乎最近又重新組織了下結(jié)構(gòu),使用最近發(fā)布的yarn作為包管理工具,介紹下基本安裝步驟,有需要的朋友們下面來一起看看吧。
    2016-10-10

最新評論

安泽县| 屯门区| 苏尼特左旗| 隆尧县| 凤阳县| 十堰市| 太康县| 五大连池市| 西峡县| 彩票| 东至县| 京山县| 开封县| 台北县| 抚顺县| 曲阜市| 双牌县| 莱州市| 镇平县| 卫辉市| 宿州市| 门头沟区| 类乌齐县| 额尔古纳市| 嘉兴市| 平顺县| 金川县| 新晃| 桃源县| 昌平区| 尼勒克县| 平昌县| 稷山县| 祁阳县| 丰宁| 阳谷县| 石泉县| 明溪县| 抚顺市| 余庆县| 棋牌|