node作為一款可以兼容前后端的js語言,在做持久層操作上和Java比較類似,下面就簡單介紹一下項目中的數據庫配置操作.
首選使用express框架自動創建一個測試項目,并在目錄下建立一個專門存放數據庫配置的配置文件,比如:db.js ?代碼如下?
/*
* 數據庫配置文件
* @Author: zth
* @Date: 2019-02-18 10:50:45
* @Last Modified by: zth
* @Last Modified time: 2019-03-05 11:35:42
*/// Mysql 配置項
var mysql = require("mysql");
var pool = mysql.createPool({host:"localhost",user:"root",password:"123456",database:"elink_platform"
});/*** mysql查詢類* @Author zth* @DateTime 2019-03-05T11:34:58+0800* @param {string} sql 查詢語句*/
function query(sql,callback) {pool.getConnection(function(err,connection) {connection.query(sql, function (err,rows) {callback(err,rows);connection.release();});});
}// MongoDB配置項
var MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017/farmDB';
const dbName = 'farmDB'; /*** MongoDB查詢類* @Author zth* @DateTime 2019-03-05T10:23:09+0800* @param {[string]} collection [數據集合名稱]* @param {[json]} query [查詢語句json對象]*/
function find(collectionName, query) {MongoClient.connect(url, {useNewUrlParser:true}, function(err, client) { const db = client.db(dbName);const collection = db.collection(collectionName);collection.find(query).toArray(function(err, docs) {console.log(docs);});
});
}exports.query = query;
exports.find = find;
這里為了測試就簡單創建兩個查詢的方法,以調試通過為目的.
其次在需要的路由文件中引入db.js,然后進行調用即可.
var express = require('express');
var router = express.Router();var db = require("../config/db");
最后處理返回的結果集,這個和平時注冊請求后端接口的數據處理一致.
router.get('/haveJobTypes', function(req, res, next) {console.log(JSON.stringify(req.query));var sql = "SELECT COALESCE (b.job_type_code,'sum') AS job_type_code,SUM(b.job_mu) AS job_mu FROM farm_job_info b LEFT JOIN farm_terminal_reg_info a ON a.car_id=b.car_id AND a.flag=1 AND b.flag=1 WHERE a.org_code IN (SELECT t1.CODE FROM sys_org_info t1,(SELECT @pcode :=CODE FROM sys_org_info WHERE id = " + req.query.orgId + ") t2 WHERE t1.CODE LIKE CONCAT(@pcode,'%')) AND b.job_date BETWEEN '" + req.query.startTime + "' AND '" + req.query.endTime + "' GROUP BY b.job_type_code WITH ROLLUP";db.query(sql, function(err, result){const obj = {status: err ? 1 : 0,data: err ? [] : result}res.json(obj);});var queryJson = { "carId": "HD146555" };db.find('terminal', queryJson, function(err, result) {console.log("result");console.log(result);})
});
?