项目准备 使用express node 创建一个server服务
1. 安装mysql模块
npm install mysql --save
2.在项目下创建DB文件夹
创建db_config.js 配置连接mysql目录
/**
* Created by sprint on 16/8/13.
*/
// DB数据库配置文件
'use strict';
module.exports = {
mysql: {
host: '127.0.0.1', // mysql服务器地址
user: 'root', // 数据库用户名
password: '123456', // 数据库密码
database:'shop', // 用户端数据库
port: 3306 // 端口
}
};
3. 在router中使用
在app.js中创建了一个product router
var productRouter = require('./routes/product');
app.use('/product', productRouter);
4. product.js
var express = require('express');
var router = express.Router();
var URL = require('url');
// 获取url参数 依赖于url模块 使用前需要使用 require('url')
// 导入MySQL模块
var mysql = require('mysql');
var dbConfig = require('../db/db_config');
// 定义SQL语句
var SQL = {
insert: "INSERT INTO `product`(`name`,`img`,`price`,`desc`,`link`) VALUES(?,?,?,?,?)",
queryAll: 'SELECT * FROM product',
queryPage: 'SELECT * FROM product LIMIT ?, ?',
getById: 'SELECT * FROM product WHERE id = ? ',
updata: 'UPDATE product SET name = ? WHERE id = ?'
};
// 使用DBConfig.js的配置信息创建一个MySQL连接池
var pool = mysql.createPool( dbConfig.mysql )
// 响应一个JSON数据
var responseJSON = function (res, ret) {
if(typeof ret === 'undefined') {
res.json({code:'-200', msg: '操作失败'});
} else {
res.json(ret);
}
};
// 添加
router.post('/add', function(req, res, next){
// 从连接池获取连接
pool.getConnection(function(err, connection){
// 获取前台页面传过来的参数
var param = req.body;
/*
* name,img,price,desc,link 参数
*/
// 建立连接 增加一个用户信息
connection.query(SQL.insert, [param.name, param.img, param.price, param.desc, param.link], function(err, result) {
if(result) {
result = {
code: 200,
msg:'增加成功'
};
responseJSON(res, result);
}else{
responseJSON(res, err);
}
// 释放连接
connection.release();
})
})
})
router.get('/list', function(req, res, next){
pool.getConnection(function(err, connection){
var param = URL.parse(req.url, true).query;
let x = parseInt(param.page_size) * (parseInt(param.page_no) - 1);
let y = parseInt(param.page_size);
connection.query(SQL.queryPage, [x, y], function(err, result){
if(result){
dataRes = {
code: 200,
info: result
}
responseJSON(res, dataRes);
connection.release();
}else{
responseJSON(res, err);
connection.release();
}
})
})
})
router.get('/getInfo', function(req, res, next){
pool.getConnection(function(err, connection){
var param = URL.parse(req.url, true).query;
connection.query(SQL.getById, [param.id], function(err, result){
if(result){
dataRes = {
code: 200,
info: result
}
responseJSON(res, dataRes);
connection.release();
}else{
responseJSON(res, err);
connection.release();
}
})
})
})
router.put('/updata', function(req, res, next){
pool.getConnection(function(err, connection){
var param = URL.parse(req.url, true).query;
connection.query(SQL.getById, [param.id], function(err, result){
if(result){
dataRes = {
code: 200,
info: result
}
responseJSON(res, dataRes);
connection.release();
}else{
responseJSON(res, err);
connection.release();
}
})
})
})
module.exports = router;
5. 启动
npm start