nodejs 中使用 mysql 实现 crud
首先要使用 mysql 就必须要安装
npm install mysql
然后封装 sql 函数
const mySql = require('mysql');
let connection ;
let insert, update, deletes, select;
insert = update = deletes = select = (condition, callback) => {
// insert into 表名(`name`,`age`) values('张三',12),('李四',13)
// select * from 表名 where id=1 and name='张三'
// update 表名 set name='张三' where id=1
// delete from 表名 where id=1
connection.query(condition, (err, data) => {
if (err) throw err;
callback && callback(data);
});
};
// 或使用占位符的方式
insert = (sql, values, callback) => {
// 单条数据插入
// sql:'insert into 表名 set ?'
// values:{name: '张三', age:14}
connection.query(sql, values, (err, data) => {
if (err) throw err;
callback && callback(data);
});
// 多条数据插入
// sql:'insert into 表名(`name`,`age`) values ?'
// values:[['张三', 18],['李四', 19],['王五', 20]]
connection.query(sql, [values], (err, data) => {
if (err) throw err;
callback && callback(data);
});
}
update = (sql, values, callback) => {
// 注意:mysql 没有批量 update 的方法,得使用循环来单个修改
// 更新单条数据
// sql:'update 表名 set name=?,age=? where id=?'
// values:['张三', 14, 1]
connection.query(sql, values, (err, data) => {
if (err) throw err;
callback && callback(data);
});
// 更新全部数据
// sql:'update 表名 set name=?'
// values:['张三']
connection.query(sql, values, (err, data) => {
if(err) throw err;
callback && callback(data);
})
};
select = (sql, values, callback) => {
// 多条件查询
// sql:'select * from 表名 where name = ? and age = ?'
// 或 sql:'select * from 表名 where name = ? or age = ?'
// values:['张三', 12]
connection.query(sql, values, (err, data) => {
if (err) throw err;
callback && callback(data);
});
// 同条件限定查询
// sql:'select * from 表名 where id in (?)'
// values:[1,2,3,4]
connection.query(sql, [values], (err, data)=>{
if(err) throw err;
callback && callback(data)
})
};
deletes = (sql, values, callback) =>{
// 删除一条
// sql:'delete from 表名 where id=?'
// values:[1]
connnection.query(sql, values, (err, data)=>{
if(err) throw err;
callback && callback(data);
})
// 删除多条
// sql:'delete from 表名 where id in (?)'
// values:[1,2,3]
connection.query(sql, [values], (err, data) => {
if(err) throw err;
callback && callback(data)
});
};
const connectionStart = callback => {
connection = mySql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'bms-test-back'
});
connection.connect(err => {
if (err) return console.log('connectSql fail:' + err);
callback && callback();
});
};
const connectionEnd = () => connection.end();
module.exports = {
insert,
update,
deletes,
select,
connectionStart,
connectionEnd
}
最后要在哪个 js 文件中使用,引入即可
nodejs 中使用 mysql 实现 crud的更多相关文章
- 关于nodejs中遇到mysql默认8小时连接断开机制的终极简单解决方案
由于mysql默认8小时连接无访问,就会断开.为此查了一下资料,有同种比较简单的解决方案: 1. 增加 MySQL 的 wait_timeout 属性的值. 修改 /etc/mysql/my.cnf文 ...
- nodejs中mysql用法
nodejs也算是一篇脚本了我们来看nodejs如何使用mysql数据库了有了它们两组合感觉还是非常的不错哦,下面一起来看nodejs中使用mysql数据库的示例,希望能够帮助到各位. <scr ...
- nodejs中如何使用mysql数据库[node-mysql翻译]
nodejs中如何使用mysql数据库 db-mysql因为node-waf: not found已经不能使用,可以使用mysql代替. 本文主要是[node-mysql]: https://www. ...
- nodejs中如何连接mysql
nodejs中如何连接mysql,下面给出一个小Demo. 第一步安装mysql模块npm install mysql 第二步导入mysql模块var mysql = require('mysql') ...
- 【原】无脑操作:express + MySQL 实现CRUD
基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...
- 详细讲解nodejs中使用socket的私聊的方式
详细讲解nodejs中使用socket的私聊的方式 在上一次我使用nodejs+express+socketio+mysql搭建聊天室,这基本上就是从socket.io的官网上的一份教程式复制学习,然 ...
- 使用nodejs+express+socketio+mysql搭建聊天室
使用nodejs+express+socketio+mysql搭建聊天室 nodejs相关的资料已经很多了,我也是学习中吧,于是把socket的教程看了下,学着做了个聊天室,然后加入简单的操作mysq ...
- nodejs remote链接mysql数据库总结
nodejs链接远端mysql,这个折腾了一个上午才搞定.本以为,直接使用就OK了,但是发现不行,后来查阅各种资料后,终于找到了方法. nodejs链接远端数据库主要分为几个步骤: 1)安装node- ...
- 第68节:Java中的MYSQL运用从小白到大牛
第68节:Java中的MYSQL运用从小白到大牛 前言 学习java必备要求,学会运用!!! 常见关系化数据库 BootStrap是轻量级开发响应式页面的框架,全局css组件,js插件.栅格系统是将页 ...
随机推荐
- [工具]ps
ps 如果想看一个进程的启动时间,可以用lstart来看 [root@jiangyi02.sqa.zmf /home/ahao.mah] #ps -eo pid,lstart,etime,cmd |g ...
- nexus3.x启动不起来
1.首先说两种启动命令,网上最多的是用./nexus start.这种是后台启动,看不到实时日志:./nexus run 是实时启动可以看到日志. 2.linux下解压nexus-3.6.2-01-u ...
- 【JavaScript进阶】深入理解JavaScript中ES6的Promise的作用并实现一个自己的Promise
1.Promise的基本使用 // 需求分析: 封装一个方法用于读取文件路径,返回文件内容 const fs = require('fs'); const path = require('path') ...
- C++中的各种进制转换函数汇总及学习
一.指定格式输出 1.C中指定格式输出 printf(); //按八进制格式输出,保留5位高位补零 printf(); //按十进制格式输出,保留3位高位补零 printf(); //按十六进制格式输 ...
- map put
public class test { static Map<String, Map<String, Integer>> mapB = new HashMap<Strin ...
- [TS-A1488][2013中国国家集训队第二次作业]魔法波[高斯消元]
暴力直接解异或方程组,O(n^6)无法接受,那么我们考虑把格子分块,横着和竖着分别分为互不影响的块,这样因为障碍物最多不超过200个,那么块的个数最多为2*(800+200)=2000个,最后用bit ...
- [bzoj2743][HEOI2012]采花_树状数组
采花 bzoj-2743 HEOI-2012 题目大意:给定n朵花,每朵花有一个种类,m次询问:一段区间中至少出现两朵花的种类的个数. 注释:$1\le n,m\le10^6$. 想法:这个题超级像H ...
- Hello, HTML5!
一个典型的HTML5文档的基础结构如下: <!DOCTYPE html> <html lang=”en”> <head> <meta charset=”utf ...
- 写一个android内置android程序
当我们编译完毕android源代码之后,就须要对他做点什么事情,我如今正在看老罗的"Android源代码情景分析"一书.在这里主要是记录一些书中没有说清楚的地方. 相同.我们创建一 ...
- 2015 年度新增开源软件排名TOP100
本榜单包括 2015 年开源中国新收录的 5977 款开源软件中,依据软件本身的关注度.活跃程度进行排名前 100 名的软件.从这份榜单中也许能够了解到最新业界的趋势. 1.SwitchyOmega ...