神刀安全网

Express4+Mysql-NodeJs

预计阅读时间: 13 分钟

在NodeJs创建的项目下,找到package.json配置,dependencies里面增加一行代码

"mysql":"latest"

然后用npm进行安装

npm install

在项目下创建config文件夹,new一个mysql.js文件

// MySQL数据库联接配置 module.exports = {   mysql: {     host: '127.0.0.1',      user: 'root',     password: '',     database:'test', // 前面建的user表位于这个数据库中     port: 3306   } };

在项目下创建model文件夹,new一个userModel.js文件

// CRUD SQL语句 var user = {   insert:'INSERT INTO user(id, name, age) VALUES(0,?,?)',   update:'update user set name=?, age=? where id=?',   delete: 'delete from user where id=?',   queryById: 'select * from user where id=?',   queryAll: 'select * from user' }; module.exports = user;

当然根据上面mysql.js和userModel.js,你应该建一张表user在test数据库里面

create table user(     id int auto_increment primary key ,     name varchar(20),     age varchar(3) )

在项目下创建dao文件夹,new一个userDao.js文件

// 实现与MySQL交互 var mysql = require('mysql'); var $conf = require('../config/db'); var $sql = require('../Model/userModel');  // 使用连接池,提升性能 var pool  = mysql.createPool($conf.mysql);  // 向前台返回JSON方法的简单封装 var jsonWrite = function (res, ret) {   if(typeof ret === 'undefined') {     res.json({       code:'1',       msg: '操作失败'     });   } else {     res.json(ret);   } }; module.exports = {   add: function (req, res, next) {     pool.getConnection(function(err, connection) {       // 获取前台页面传过来的参数       var param = req.query || req.params;       // 建立连接,向表中插入值       // 'INSERT INTO user(id, name, age) VALUES(0,?,?)',       connection.query($sql.insert, [param.name, param.age], function(err, result) {         if(result) {           result = {             code: 200,             msg:'增加成功'           };             }         // 以json形式,把操作结果返回给前台页面         jsonWrite(res, result);         // 释放连接          connection.release();       });     });   },   delete: function (req, res, next) {     // delete by Id     pool.getConnection(function(err, connection) {       var id = +req.query.id;       connection.query($sql.delete, id, function(err, result) {         if(result.affectedRows > 0) {           result = {             code: 200,             msg:'删除成功'           };         } else {           result = void 0;         }         jsonWrite(res, result);         connection.release();       });     });   },   update: function (req, res, next) {     // update by id     // 为了简单,要求同时传name和age两个参数     var param = req.body;     if(param.name == null || param.age == null || param.id == null) {       jsonWrite(res, undefined);       return;     }     pool.getConnection(function(err, connection) {       connection.query($sql.update, [param.name, param.age, +param.id], function(err, result) {         // 使用页面进行跳转提示         if(result.affectedRows > 0) {           res.render('suc', {             result: result           }); // 第二个参数可以直接在jade中使用         } else {           res.render('fail',  {             result: result           });         }         connection.release();       });     });   },   queryById: function (req, res, next) {     var id = +req.query.id; // 为了拼凑正确的sql语句,这里要转下整数     pool.getConnection(function(err, connection) {       connection.query($sql.queryById, id, function(err, result) {         jsonWrite(res, result);         connection.release();       });     });   },   queryAll: function (req, res, next) {     pool.getConnection(function(err, connection) {       connection.query($sql.queryAll, function(err, result) {         jsonWrite(res, result);         connection.release();       });     });   } };

找到routes下user.js,代码为

var express = require('express'); var router = express.Router(); var userDao = require('../dao/userDao');  /* GET users listing. */ router.get('/', function(req, res, next) {   res.send('respond with a resource'); }); // 增加用户 //TODO 同时支持get,post router.get('/addUser', function(req, res, next) {   userDao.add(req, res, next); }); router.get('/queryAll', function(req, res, next) {   userDao.queryAll(req, res, next); }); router.get('/query', function(req, res, next) {   userDao.queryById(req, res, next); }); router.get('/deleteUser', function(req, res, next) {   userDao.delete(req, res, next); }); router.post('/updateUser', function(req, res, next) {   userDao.update(req, res, next); }); module.exports = router;

输入访问user表中id为1的数据

http://localhost:3000/users/query?id=1

参考文章: http://www.tuicool.com/articles/JfqYN3I

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Express4+Mysql-NodeJs

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址