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

具体步骤:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第十三天 基础加强-JDBC高级开发事务【悟空教程】

insert into account values (null,'jack',10000);

882
来自专栏芋道源码1024

分布式消息队列 RocketMQ源码解析:事务消息

本文主要基于 RocketMQ 4.0.x 正式版 1. 概述 2. 事务消息发送 2.1 Producer 发送事务消息 2.2 Broker 处理结束事务请...

5546
来自专栏PHP在线

重磅资料!Github上的PHP资源汇总大全

依赖管理 ——用于依赖管理的包和框架 Composer/Packagist : 一个包和依赖管理器 Composer Installers: 一个多框架Com...

3204
来自专栏散尽浮华

Centos下DNS+NamedManager高可用部署方案完整记录

之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案:

9267
来自专栏玄魂工作室

Hacker基础之Linux篇:基础Linux命令十六

今天我们来学习几个小知识,不一定是Linux的命令,都是用于查看Linux的系统信息的

1703
来自专栏代码拾遗

SpringMVC 教程 - WebSocket

WebSocket提供了在客户端和服务端通过单一TCP连接建立全双工双向通信的通道。它是和HTTP不同的TCP协议,但是却建立在HTTP之上,使用80,443端...

2392
来自专栏码生

react-navigation 监听页面显隐(viewDidAppear viewDidDisappear)

我们经常遇到的需求就是,当某个界面出现的时候,就刷新一下此界面的数据 保证用户的数据处于一种相对同步的情况

3574
来自专栏草根专栏

使用Identity Server 4建立Authorization Server (5)

之前的配置都是在内存中, 下面将如何把这些数据存储到Sql Server数据库, 这样更适合生产环境. 这部分基本完全参考官方文档: https://ident...

3875
来自专栏代码世界

Python之日志 logging模块

关于logging模块的日志功能 典型的日志记录的步骤是这样的: 创建logger 创建handler 定义formatter 给handler添加format...

2778
来自专栏运维小白

11.25 配置防盗链

配置防盗链目录概要 通过限制referer来实现防盗链的功能 配置文件增加如下内容 Directory针对目录进行 <Directory /data/www...

2165

扫码关注云+社区

领取腾讯云代金券