node.js查询语句封装

/** * Created by Administrator on 2017/3/3 0003. */var Mongo=require(‘mongodb‘);

var Config=require("./config.js").config;

var MongoClient=Mongo.MongoClient;

var ObjectID=Mongo.ObjectID;

/*连接数据库*/function _connectDB(callback){    //MongoClient.connect(Config.DbUrl,function(err,db){    //    if (err) {    //        console.log(‘数据库连接失败...‘);    //        callback(err, null);    //        return;    //    }    //    callback(err, db);    //})

MongoClient.connect(Config.DbUrl,function(err,db){

if (err) {            console.log(‘数据库连接失败...‘);            callback(err, null);            return;        }        callback(err, db);    })

}

//用于获取idexports.ObjectID=ObjectID;

exports.count=function(collectionName,json,callback){

_connectDB(function(err,db){        db.collection(collectionName).count(json, function (err, result) {            callback(err, result);            db.close(); //关闭数据库        })    })

}

/*插入数据*/exports.insertOne=function(collectionName,json,callback){

_connectDB(function(err,db){        db.collection(collectionName).insertOne(json, function (err, result) {            callback(err, result);            db.close(); //关闭数据库        })    })

}/*更新数据*/

//修改一条exports.updateOne = function (collectionName, json1, json2, callback) {    _connectDB(function (err, db) {        db.collection(collectionName).updateOne(            json1,            json2,            function (err, results) {                callback(err, results);                db.close();//关闭数据库            });    })}//修改全部exports.updateMany=function (collectionName, json1, json2, callback) {

_connectDB(function (err, db) {        db.collection(collectionName).updateMany(            json1,            json2,            function (err, results) {                callback(err, results);                db.close();//关闭数据库            });    })

}

// 查找

//要求最少传4个参数//db.find(‘表名‘,{},{},function(){////})

//collectionName表名

//json1查询条件//json2返回的列//c 配置 回调//D回调

exports.find=function (collectionName, json1,json2, C, D) {

if (arguments.length<4) {

console.log(‘ 传入参数不对‘);        return false;    }

var result = [];    //结果数组    if (arguments.length == 4) {        //那么参数C就是callback,参数D没有传。        var callback = C;        var skipnumber = 0;        //数目限制        var limit = 0;    } else if (arguments.length == 5) {        var callback = D;        var args = C;  /*配置*/        //应该省略的条数  1        var skipnumber = args.pageSize * (args.page-1) || 0;

// //page=1第一页:skip(0)        //page=2 第一页:skip(2)        //page=3  第一页:skip(4)        //page=4  第一页:skip(6)

//数目限制        var limit = args.pageSize || 20;        //排序方式        var sort = args.sort || {};    } else {        throw new Error("find函数的参数个数,必须是3个,或者4个。");        return;    }

_connectDB(function(err,db){

if(err){ /*数据库连接失败*/

console.log(‘数据库连接失败‘);            return;        }

//var userRel=db.collection(collectionName).find(json);        var userRel=db.collection(collectionName).find(json1,json2).skip(skipnumber).limit(limit).sort(sort);;

userRel.each(function(err, doc) {

if(err){                res.write("游标遍历错误");                return;            }            if (doc != null) {                result.push(doc);            } else {                //console.log(result);                //遍历完毕                db.close();                callback(err,result)            }        });

})

}

////// 查找//exports.find=function (collectionName, json, C, D) {////////    var result = [];    //结果数组//    if (arguments.length == 3) {//        //那么参数C就是callback,参数D没有传。//        var callback = C;//        var skipnumber = 0;//        //数目限制//        var limit = 0;//    } else if (arguments.length == 4) {//        var callback = D;//        var args = C;  /*配置*///        //应该省略的条数  1//        var skipnumber = args.pageSize * (args.page-1) || 0;////        // //page=1第一页:skip(0)//        //page=2 第一页:skip(2)//        //page=3  第一页:skip(4)//        //page=4  第一页:skip(6)////        //数目限制//        var limit = args.pageSize || 20;//        //排序方式//        var sort = args.sort || {};//    } else {//        throw new Error("find函数的参数个数,必须是3个,或者4个。");//        return;//    }//////    _connectDB(function(err,db){//////            if(err){ /*数据库连接失败*/////                console.log(‘数据库连接失败‘);//                return;//            }//////            //var userRel=db.collection(collectionName).find(json);//          var userRel=db.collection(collectionName).find(json).skip(skipnumber).limit(limit).sort(sort);;//////            userRel.each(function(err, doc) {////                if(err){//                    res.write("游标遍历错误");//                    return;//                }//                if (doc != null) {//                    result.push(doc);//                } else {//                    //console.log(result);//                    //遍历完毕//                    db.close();//                    callback(err,result)//                }//            });////    })//////////}

//删除exports.deleteMany = function (collectionName, json, callback) {    _connectDB(function (err, db) {        //删除        db.collection(collectionName).deleteMany(            json,            function (err, results) {                callback(err, results);                db.close(); //关闭数据库            }        );    });}
时间: 2024-08-30 11:45:17

node.js查询语句封装的相关文章

node.js查询express版本号

刚刚开始学习node.js,想直接开始学习express 4,就直接在命令行输入express -V,查询安装的express的版本号.结果出来这么一堆,如下图: -v的命令变成了添加view引擎,-V命令已经消失,只有--version才是查看express版本号,看来应该是express 4+了.输入express --version,果然输出如下图:

Node.js的高性能封装 Express.js

Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用.Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能.丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健.友好 的API变得快速又简单. var express = require('express')var app = express() app.get('/', function (req, res) {  

Node.js连接数据库

Node.js连接数据库前,需要安装相应的包,如果安装sql server 需要先装包node-sqlserver.我们以mysql为案例来说明node.js查询mysql数据. 1.安装 node-mysql npm install node-mysql 2.通过express框架实现数据库连接 var express = require('express'); var mysql = require('mysql'); var app = express(); app.use(functio

node.js http初探

在之前的例子中已经写了一个简单的使用http模块的例子 var http = require('http');  //请求http模块 var func = function(req,res) { res.writeHead(200,{'Content-Type' : 'text/plain'});//相应头200 表示正常返回 res.write("node.js") res.end(); }//web服务器收到请求时的处理函数 var server = http.createSer

node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装

第七章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑.编写接口,最后完成一个完整的项目后台,预计共10天课程. node.js操作mangodb 创建一个用于放置今天文件的文件夹,npm init初始化一下,并创建demo1.js用于写node代码 使用 npm install mongodb,将mongodb控制模块安装到本地 在demo1.js中写

Node.js 手册查询-3-Mongoose 方法

Mongoose 参考手册 标签(空格分隔): MongoDB Mongoose 是什么? 一般我们不直接用MongoDB的函数来操作MongoDB数据库 Mongose就是一套操作MongoDB数据库的接口. Schema 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力.可以说是数据属性模型(传统意义的表结构),又或着是“集合”的模型骨架 /* 定义一个 Schema */ var mongoose = require("mongoose"

mysql语句在node.js中的写法

总结一下mysql语句在node.js中的各种写法,参考了npm网站mysql模块给的实例. 查询 select //1 db.query('select * from tuanshang_users where user_id < 10',function(err,results,fields){ //if(err) throw err; console.log( results ); if(!!results.length){ console.log('查询到'+ results.lengt

log4js-Node.js中的日志管理模块使用与封装

开发过程中,日志记录是必不可少的事情,尤其是生产系统中经常无法调试,因此日志就成了重要的调试信息来源. Node.js,已经有现成的开源日志模块,就是log4js,源码地址:点击打开链接 项目引用方法: npm install log4js 1.配置说明(仅以常用的dateFile日志类型举例,更多说明参考log4js-wiki): { "appenders": [ // 下面一行应该是用于跟express配合输出web请求url日志的 {"type": "

Node.js模块封装及使用

Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用. 一.Node.js模块封装 1.创建一个名为censorify的文件夹 2.在censorify下创建3个文件censortext.js.package.json.README.md文件 1).在censortext.js下输入一个过滤特定单词并用星号代替的函数. var censoredWorlds=["sad","bad","mad&