Node Dao 레이어의 패키지 및 페이지 나누기
/**
* Created by on 2017/7/22.
*/
var express = require('express');
var app = express();
var MongoClient = require('mongodb').MongoClient;
app.get('/',function (req,res) {
// Connection URL
var url = 'mongodb://localhost:27017/database';
MongoClient.connect(url, function(err, db) {
if(err){
console.log(" ")
}
console.log(" ");
//
db.collection('student').insertOne({
"name":"hahah",
"age":"100"
},function (err,result) {
console.log(result);
res.send(" :"+result);
db.close();
});
});
});
app.listen(3000);
이렇게 하면 우리는 사용자가 매번 조작할 때 순서대로 데이터베이스에 연결해야 한다는 것을 알 수 있다. 이렇게 하면 효율이 매우 낮기 때문에 우리는 데이터베이스의 삭제와 수정을 하나의 모듈로 봉하여 이 모듈을db라고 명명한다.js Dao 레이어 캡슐화:
db.js
1, 몬godb 도입var MongoClient = require('mongodb').MongoClient;
2. 데이터베이스 연결
//
function _connectDB(callback) {
// Connection URL
var url = 'mongodb://localhost:27017/database';
MongoClient.connect(url, function (err, db) {
console.log(" ");
if(err){
callback(err,null);
return;
}
callback(err, db);
});
}
3. 포장 방법
//
exports.insertOne = function (collectionName, json, callback) {
_connectDB(function (err, db) {
db.collection(collectionName).insertOne(json, function (err, result) {
callback(err, result);
db.close();
})
})
};
//
exports.find = function (collectionName, json, callback) {
var result = []; //
if (arguments.length != 3) {
callback("find ", null);
return;
}
_connectDB(function (err, db) {
var cursor = db.collection(collectionName).find(json);
cursor.each(function (err, doc) {
if (err) {
callback(err, null);
db.close();
return;
}
if (doc != null) {
result.push(doc); //
} else {
//
callback(null, result);
db.close();
}
})
})
};
db.student.find().skip().limit();
find()
이 검색 조건이고 skip()
은 생략된 항목이고 limit()
은 읽는 항목이고 limit
과 skip
이 함께 사용하면 페이지 조회이다.총 데이터 쓰기 방법: db.student.find().count()
db.student.stats().count;
예: 첫 페이지는 페이지=0입니다.페이지당 10개이기 때문에 현재 페이지의 조회문:
db.student.find({}).limit(10).skip(page*10)
그래서 페이지 나누기 조회가 봉인된 함수는 다음과 같다.
// ,args {"pageamount":2,"page":page}
exports.find = function (collectionName, json, C,D) {
var result = []; //
if (arguments.length == 3) {
var callback = C;
var skip = 0;
var limit = 0;
}else if(arguments.length==4){
var callback = D;
var args = C;
//
var skip = args.pageamount*args.page||0;
//
var limit = args.pageamount||0;
//
var sort = args.sort||{}
}else{
throw new Error("find ");
return;
}
_connectDB(function (err, db) {
var cursor = db.collection(collectionName).find(json).skip(skip).limit(limit).sort(sort);
cursor.each(function (err, doc) {
if (err) {
callback(err, null);
db.close();
return;
}
if (doc != null) {
result.push(doc); //
} else {
//
callback(null, result);
db.close();
}
})
})
};
호출하러 갔을 때:
app.get("/find",function (req,res) {
var page =parseInt(req.query.page);
db.find("student",{},{"pageamount":2,"page":page},{"sort":{"shijian":-1}},function (err,result) {
if(err){
console.log(" ")
}
res.send(result);
})
});
//
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();
});
})
};
//
exports.deleteMany = function (collectionName, json, callback) {
_connectDB(function (err, db) {
db.collection(collectionName).deleteMany(json, function (err, result) {
callback(result.length);
db.close();
})
})
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.