nodejs nedb 封装库与使用方法示例
程序员文章站
2022-11-16 10:07:58
本文实例讲述了nodejs nedb 封装库与使用方法。分享给大家供大家参考,具体如下:libs/nedb.jsconst datastore = require('nedb');function d...
本文实例讲述了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程序设计有所帮助。
上一篇: golang之数据校验的实现代码示例
推荐阅读
-
nodejs连接mysql数据库简单封装示例-mysql模块
-
nodejs nedb 封装库与使用方法示例
-
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
-
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
-
php封装的pdo数据库操作工具类与用法示例
-
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
-
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
-
nodejs nedb 封装库与使用方法示例
-
nodejs连接mysql数据库简单封装示例-mysql模块
-
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例