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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SimpleITK使用深度学习识别肺癌CT DICOM数据集

肺癌数据集DICOM &#xff1a;https://wiki.cancerimagingarchive.net/display/Public/LIDC-IDRI 首先用SimpleITK把mhd图片读入&#xff0c;对每个切片使用Gaussian filter然后使用阈值-600把肺部图片二值化&#xff0c;然后再分析该切片的面积&#xff0c;去掉面积小于30mm2的…

两个文件夹数据同步

echooffechoechoAuthorlongwenby2013echo每天下午16&#xff1a;00和晚上22&#xff1a;00做自动更新echo时间由您的计划任务时间确定echoRelationlongwen260qq.comechoQQ476376997echoTel13480986813echoxcopyD:\svn\te\*.*E:\svn\te\*.*/s/e/m/y转载于:https://blog.51cto.co…

如何让nodejs同步操作

众所周知&#xff0c;异步是nodejs中得天独厚的特点和优势&#xff0c;但同时在程序中同步的需求&#xff08;比如控制程序的执行顺序为&#xff1a;func1 -> func2 ->func3 &#xff09;也是很常见的。本文就是对这个问题记录自己的一些想法。 需要执行的函数&#xff…

Mediapipe框架学习之一——Win10安装Mediapipe环境

Mediapipe官方文档 Mediapipe框架学习之一——Win10安装Mediapipe环境 Mediapipe框架学习之二——Android SDK and NDK 配置 Mediapipe框架学习之三——构建 MediaPipe 的 Android aar 包 Mediapipe框架学习之四——利用 Mediapipe aar 包&#xff0c;在AS中构建基于 Media…

MemCache在win7上的可视化配置以及Nodejs/Net应用

惯例科普&#xff1a;MemCache是一套分布式的高速缓存系统&#xff0c;由LiveJournal的Brad Fitzpatrick开发&#xff0c;但目前被许多网站使用以提升网站的访问速度&#xff0c;尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。这是一套开放源代码软件…

Android AM命令行启动程序的方法

http://blog.csdn.net/sunrock/article/details/5675067 在前面添加一句 启动服务的话 使用 am startservice com.lxb.window/.RecordService即可在Android中&#xff0c;除了从界面上启动程序之外&#xff0c;还可以从命令行启动程序&#xff0c;使用的是命令行工具am.usage: …

Apache httpd 配置HTTPS SSL访问 443

2, 首先安装https模块yum install mod_ssl 3. 配置Apache Web服务器 首先&#xff0c;修改下面的配置文件。仅需配置红色部分 SSLCertificateFile 和 SSLCertificateKeyFile # vim /etc/httpd/conf.d/ssl.conf # # When we also provide SSL we have to listen to the # t…

Redis在win7上的可视化应用

Redis是一个key-value存储系统。和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希类型&#xff09;。这些数据类型都支持push/pop、add/remove及取交集并…

全网最详细的docker配置nginx http2 优化高速访问

Nginx 从 1.13.9 版本开始加入了 HTTP/2 的 Server Push 功能&#xff0c;本文将介绍如何在 Nginx 下实现 HTTP/2 服务器推送 (Server Push) 。这里我们首先用 Docker 搭建一个支持 HTTP/2 的 Server Push 功能的 Nginx 容器并加入 SSL 证书。如果你还不会 Docker&#xff0c;可…

Flex Graphics

<?xml version"1.0" encoding"utf-8"?> <s:Application xmlns:fx"http://ns.adobe.com/mxml/2009" xmlns:s"library://ns.adobe.com/flex/spark" xmlns:mx"library://ns.adobe.com/flex/halo"minWidth"1024…

CentOS安装运行NodeJS框架Express

安装依赖包 yum -y install gcc make gcc-c openssl-devel wget 下载/解压NodeJs wget http://nodejs.org/dist/v0.12.7/node-v0.12.7.tar.gztar -zvxf node-v0.12.7.tar.gz 编译及安装&#xff0c;逐行执行 cd node-v0.12.7./configuremake install 验证是否安装配置成功&…

android点滴27:R文件无法加载 R cannot be resolved to a v...

2019独角兽企业重金招聘Python工程师标准>>> 导致这个问题原因可能有二个&#xff1a;1. manifest文件中的包名和真正的报名不统一 2. 在java文件中导入了R文件&#xff0c;在java文件中无需导入任何包的R文件&#xff0c;系统会自动加载gen目录下的R文件。 转载于…

MITK医学Python开发入门详细版

1.关于MITK&#xff1a; MITK的全称是”The Medical Imaging Interaction Toolkit”。它是一款开源的交互式医学图像处理软件开发和应用平台。MITK将ITK和VTK整合为一个应用框架。该软件由德国一个研究室开发。官网地址为&#xff1a;http://mitk.org/wiki/MITK 。 与MITK同名…

ubuntu配置×××后,配置走×××的路线

先执行route命令查看所有的路由route看到的结果大致如下内核 IP 路由表 目标 网关 子网掩码 标志 跃点 引用 使用 接口 default 192.168.8.1 0.0.0.0 UG 0 0 0 wlan0 110.185.76.107 192.168.8.1 25…

Python SimpleITK实现医学图像增强算法

1、对数变换 图像对数变换首先将图像从SimpleITK图像数据转成Numpy矩阵数据&#xff0c;然后采用Numpy的log1p&#xff08;&#xff09;函数来计算数据的log&#xff08;1x&#xff09;变换&#xff0c;由于1x不能小于零&#xff0c;因此这里我们使用图像减去图像的最小值来计…

中国计算机学会通讯杂志,何积丰. Cyber-physical systems [J]. 中国计算机学会通讯, 2010, 6(1): 25-29....

摘要:本文提出了将计算机和互联网技术引入传统的基于模拟电路和微控制器的电池管理系统的想法&#xff0c;以此为电池系统带来更高的安全性和更长的寿命&#xff0c;降低电池端硬件的复杂度和成本。本文讨论了电池管理系统的详细设计和实现过程。系统通过MATLAB仿真工具Simulin…

使用Nginx配置NodeJs程序(Windows平台)

简介 Nginx("engine x") 是一个高性能的 HTTP 和 反向代理 服务器&#xff0c;也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的&#xff0c;第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证…

Hadoop Mapreduce分区、分组、二次排序过程详解[转]

徐海蛟 教学用途1、MapReduce中数据流动&#xff08;1&#xff09;最简单的过程&#xff1a; map - reduce&#xff08;2&#xff09;定制了partitioner以将map的结果送往指定reducer的过程&#xff1a; map - partition - reduce&#xff08;3&#xff09;增加了在本地先进性…

服务器系统上1068错误,错误1068,详细教您启动网络服务错误1068怎么解决

在电脑中&#xff0c;通常开机后就会自动连接网络宽带&#xff0c;不过有用户遇到问题。开机后网络图标显示红叉或者图标正常无法上网&#xff0c;打开网络和共享中心才发现是服务或者组无法启动&#xff0c;启动时显示错误1068&#xff0c;这该怎么办&#xff1f;下面&#xf…

NodeJs连接Oracle数据库

nodejs连接oracle数据库&#xff0c;各个平台的官方详情文档&#xff1a;https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodejs连接Oracle的配置&#xff0c;运行环境: windows7 x64 nodejs 0.12.7 Python 2.7.10 npm 2.11.3 运行原理分析 npm调…