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把数据显示到前端

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容