Nodejs+Express操作Mysql

总理说了:学知识不写demo就是耍流氓。

接下来就谈谈怎么用nodejs来操作mysql数据库。

1.安装mysql

 sudo apt-get install mysql-server mysql-client

在此安装过程中会让你输入root用户的密码,按照要求输入即可。
安装完成之后可以测试是否安装成功:

 sudo netstat -tap | grep mysql

若输出

 tcp 0 0 localhost:mysql *:* LISTEN 13308/mysqld

则表示安装成功。

在shell下操作mysql
2.启动mysql :

/etc/init.d/mysql start

3.登陆mysql

 mysql -u用户名 -p用户密码

比如:键入命令mysql -uroot -p, 回车后提示你输入密码,输入之后,回车即可进入到mysql中了,mysql的提示符是:

 mysql>

设置数据库中文格式

 mysql> alter table User convert to character set utf8;

如果感觉shell下操作不方便,可以安装MySQL客户端

4.我用的是navicat,可以先去官网下载https://www.navicat.com/download/

解压下载好的文件
进入文件目录,然后执行

./start_navicat

navicat就打开了,就可以创建数据库啦。

5.安装express

npm install express --save-dev

6.在server文件夹下创建connection.js文件,编写mySQL数据库连接配置

const mysql = require('mysql');

let db = mysql.createConnection({
  host: '127.0.0.1',
  user: 'root',
  password: '123456',
  database: 'userInfo',
  port: 3306
});

db.connect(function (err) {
  if (err) {
      console.log("err" + err.stack);
      return;
  }
  console.log("connection id " + db.threadId);
});

module.exports = db;

7.在server文件夹同级目录下创建server.js文件,内容如下:

const express = require('express');
const app = new express();
const db = require('./server/connection');

const bodyParser = require('body-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

app.use(express.static(__dirname + '/'));

app.listen(3000, () => {
  console.log('server start, listening is 3000');
});

module.exports = app;

此时,执行node server.js,如果看到

 server start, listening is 3000
 connection id 41

说明数据库连接成功。

此时的目录结构如下:


目录结构.png

demo地址:https://github.com/goddessting/express-nodejs-mysql-demo

8.对数据库的CRUD操作:
为了方便起见,在server文件夹下创建usersql.js文件,专门存放数据库的CRUD操作:

let UserSQL = {
  insert: 'INSERT INTO User(username,name,age,sex,telephone,email,other)
            VALUES(?,?,?,?,?,?,?)',
  queryAll: 'SELECT * FROM User',
  update:'UPDATE User SET USERNAME=?, NAME=?, AGE=?, SEX=?, TELEPHONE=?, 
          EMAIL=?, OTHER=? WHERE id=?',
  delete: 'DELETE FROM User WHERE id=?',
  queryById: 'SELECT * FROM User WHERE id=?',
};

module.exports = UserSQL;

9.实现插入功能:

 //server/routers/insertUser.js
 let express = require('express');
 let router = express.Router();

 let db = require('../connection');

 let userSQL = require('../usersql');

 router.post('/insertUser', (req, res) => {
    db.query(userSQL.insert, [req.body.username, req.body.name, req.body.age, 
    req.body.sex, req.body.telephone, req.body.email, req.body.other], function (err, result) {
    if (err) return err;

    res.send('User added to database with ID: ' + result.insertId);
 });
});

module.exports = router;

此时,将server.js中的以下代码删除:

 const db = require('./server/connection');

通过postman测试,如果返回User added to database with ID: **,说明插入成功。

其他功能就不贴代码了,相信大家都会了。

参考资料:

初识NodeJS服务端开发(Express+MySQL)
Mysql常用命令行大全
Ubuntu下如何配置java ee环境
demo: node.js+mysql把数据显示到前端

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容