当前位置: 首页 > news >正文

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

 

转载于:https://www.cnblogs.com/vipstone/p/4748533.html

相关文章:

  • Java对于私有变量的“暴力反射”技术
  • Java相关书籍推荐
  • Java在利用反射条件下替换英文字母中的值
  • sql server 2008如何导入mdf,ldf文件
  • Servlet 中文乱码问题及解决方案剖析
  • 4、模拟器中文输入
  • Tomcat7.0修改默认的路径访问自己的项目
  • 使用NPOI方法导出数据到excel表中
  • Servlet实现的三种方法
  • Servlet登陆功能的实现
  • 事务分类
  • Servlet实现Session
  • Servlet实现Cookie的创建,读取,删除
  • 通过Maven部署项目到Tocmat7
  • ServletContext的添加与获取
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CSS 专业技巧
  • es6要点
  • Hexo+码云+git快速搭建免费的静态Blog
  • java8-模拟hadoop
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java方法详解
  • Java-详解HashMap
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • LintCode 31. partitionArray 数组划分
  • Logstash 参考指南(目录)
  • Spring声明式事务管理之一:五大属性分析
  • Vue.js-Day01
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 排序算法学习笔记
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 源码安装memcached和php memcache扩展
  • 做一名精致的JavaScripter 01:JavaScript简介
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​水经微图Web1.5.0版即将上线
  • #NOIP 2014# day.1 T2 联合权值
  • #pragma pack(1)
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (SpringBoot)第七章:SpringBoot日志文件
  • (层次遍历)104. 二叉树的最大深度
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (算法二)滑动窗口
  • (一)Linux+Windows下安装ffmpeg
  • (一)认识微服务
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)