Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)

简介: 具体步骤: 1、安装开发工具WebStorm; 2、安装node/npm(下载地址:https://nodejs.org/download/)选择适合你的xxx.mis安装; 3、安装express框架(cmd窗口模式,用npm命令执行:npm install express); 4、创建n...

具体步骤:

1、安装开发工具WebStorm;

2、安装node/npm(下载地址:https://nodejs.org/download/)选择适合你的xxx.mis安装;

3、安装express框架(cmd窗口模式,用npm命令执行:npm install express);

4、创建nodeJsExpress项目,使用ejs模板;

5、下载node-mssql连接数据库驱动(进入指定的目录用npm命令执行:npm install node-mssql);

6、拷贝node-mssql文件夹到express项目的node-modules目录;

7、使用dbHelper工具类,进行数据查询,以及EJS页面数据展示;

dbHelper代码如下:

/**
* Created by Administrator on 2015/9/14.
*/
var node_mssql = require('node-mssql');

/* add configuration to query object */
var host = '192.168.20.135',
port = 1433,
username = 'sa',
password = 'sa',
db = 'GG_ChatDB';

var queryObj = new node_mssql.Query({
host: host,
port: port,
username: username,
password: password,
db: db
});

var initDbHelper = function (host, port, username, password, db) {
queryObj = new node_mssql.Query({
host: host,
port: port,
username: username,
password: password,
db: db
});
}

var defaultConfig = function () {
queryObj = new node_mssql.Query({
host: host,
port: port,
username: username,
password: password,
db: db
});
}

var insert = function (data, insertTable, callback, res) {
queryObj.table(insertTable);
queryObj.data(data);
queryObj.insert(function (results) {
//success
callback(res, "添加成功!", results);
}, function (err, sql) {
if (err) {//error
callback(res, "添加失败!", err);
console.log(err);
}
});
defaultConfig();
};

var list = function (whereSql,orderList, table, callback, res) {
queryObj.table(table);
queryObj.where(whereSql);
queryObj.order(orderList); // ['id desc',...]
queryObj.select(function (data) {
//success
callback(res, "查询成功!", data);
}, function (err, sql) {
if (err) { //error
callback(res, "查询失败!", err);
console.log(err);
}
});
defaultConfig();
};

var update = function (data, option, upTable, callback, res) {
queryObj.table(upTable);
queryObj.data(data);
queryObj.where(option);
queryObj.update(function (results) {
// success callback
callback(res, "修改成功!", results);
}, function (err, sql) {
if (err) {
callback(res, "修改失败!", err);
console.log(err);
}
});
defaultConfig();
};

//参数说明:@delsql删除sql条件,举例 delsql="id=1"
var deleteById = function (delsql, table, callback, res) {
queryObj.query("delete from " + table + " where " + delsql,
function (delres) {
callback(res, "删除成功!", delres);
},
function (err, sql) {
if (err) {
callback(res, "删除失败!", err);
}
}
);
defaultConfig();
};

var queryBySql = function (sql, callback, res) {
queryObj.query(sql, function (delres) {
callback(res, "执行成功!", delres);
},
function (err, sql) {
if (err) {
callback(res, "执行失败!", err);
}
}
);
defaultConfig();
}

exports.insert = insert;
exports.list = list;
exports.update = update;
exports.deleteById = deleteById;
exports.initDbHelper = initDbHelper;
exports.queryBySql = queryBySql;

要使用dbHelper,在list页面中进行展现,首先配置app.js,设置Action过滤,代码如图:

 

这样配置之后,访问地址:http://xxxx/list就分发到list.js的控制器了,然后在list.js进行处理代码,list.ejs进行便签展现,

list.js代码如下:

var express = require('express');
var dbHelper = require('./dbHelper.js');

var router = express.Router();


/* GET home page. */
router.get('/', function (req, res, next) {
    dbHelper.list({}, 'dbo.table1', callback, res); 
    // list参数,第一个是whereSql查询条件,json格式;第二个是表名,第三个是回调函数,第四个是express返回客户端的response类
});

var callback = function (data, res) {
    res.render('list', {listData: data});
    // 第一个参数:模板名称对应list.ejs,第二个是参数名和数据
};

module.exports = router;

 

list.ejs代码如下:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel='stylesheet' href='/stylesheets/style.css'/>
</head>
<body>

<ul>
    <% for(var i = 0; i < listData.length; i++) { %>
    <li><%= listData[i].Id %> : <%= listData[i].Name %></li>
    <% } %>
</ul>

</body>
</html>

执行结果如图:

 

Express可调用mssql驱动进行数据库操作,更为好用和接近原生态,博客地址:http://www.cnblogs.com/stone_w/p/4815887.html

 

如果本文对你有所帮助,请打赏——1元就足够感动我:)
支付宝打赏 微信打赏
联系邮箱:intdb@qq.com
我的GitHub: https://github.com/vipstone
关注公众号:


作者: 王磊
出处: http://vipstone.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,请标明出处。

相关文章
|
6月前
|
程序员 开发工具 开发者
库和框架的区别
库和框架的区别
34 0
|
7月前
|
NoSQL 关系型数据库 MySQL
基于Python和mysql开发的在线音乐网站系统(源码+数据库+程序配置说明书+程序使用说明书)
基于Python和mysql开发的在线音乐网站系统(源码+数据库+程序配置说明书+程序使用说明书)
255 0
|
API 数据库
如何使用WCF框架和EF框架实现对数据库的操作
如何使用WCF框架和EF框架实现对数据库的操作
|
jenkins 持续交付 Python
python接口自动化(十四)--session关联接口(详解)
上一篇cookie绕过验证码模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等等,这时候如何保持会话呢?这里我以jenkins平台为例,给小伙伴们在沙场演练一下。
228 0
python接口自动化(十四)--session关联接口(详解)
|
jenkins 持续交付 Python
python接口自动化(十五)--参数关联接口(详解)
我们用自动化新建任务之后,要想接着对这个新建任务操作,那就需要用参数关联了,新建任务之后会有一个任务的Jenkins-Crumb,获取到这个Jenkins-Crumb,就可以通过传这个任务Jenkins-Crumb继续操作这个新建的任务。
472 0
python接口自动化(十五)--参数关联接口(详解)
|
NoSQL MongoDB 数据库
MongoDB数据库基础【完整版】:简介和常用命令、数据库&集合以及文档的增删改查、MongoDB与Python交互(附源代码)2
MongoDB数据库基础【完整版】:简介和常用命令、数据库&集合以及文档的增删改查、MongoDB与Python交互(附源代码)
202 0
MongoDB数据库基础【完整版】:简介和常用命令、数据库&集合以及文档的增删改查、MongoDB与Python交互(附源代码)2
|
存储 JSON NoSQL
MongoDB数据库基础【完整版】:简介和常用命令、数据库&集合以及文档的增删改查、MongoDB与Python交互(附源代码)
MongoDB数据库基础【完整版】:简介和常用命令、数据库&集合以及文档的增删改查、MongoDB与Python交互(附源代码)
237 0
MongoDB数据库基础【完整版】:简介和常用命令、数据库&集合以及文档的增删改查、MongoDB与Python交互(附源代码)
|
SQL 前端开发 关系型数据库
Python Web开发(十一):ORM 对关联表的操作
Python Web开发(十一):ORM 对关联表的操作
137 0
|
中间件
nodeJS+express+mysql模块封装之服务器渲染小demo
nodeJS+express+mysql模块封装之服务器渲染小demo
nodeJS+express+mysql模块封装之服务器渲染小demo
|
SQL 存储 关系型数据库
(十一)Python 数据库的操作
(十一)Python 数据库的操作
292 0
(十一)Python 数据库的操作