1.后端文件组织架构
|--src
|--server
|--api
|--userApi.js
|--db.js
|--server.js
|--sqlMap.js
2.userApi.js 文件
注意:router.put必须和前端postman发送的请求put一致。使用传送参数:req.body
//api文件夹为与数据库的各个表连接接口,每一个子文件为一个数据库中一个表
//userApi.js
var models = require('../db')
var express = require('express')
var router = express.Router()
var mysql = require('mysql')
var $sql = require('../sqlMap')
// 连接数据库
var conn = mysql.createConnection(models.mysql)
conn.connect()
var jsonWrite = function (res, ret) {
if (typeof ret === 'undefined') {
res.json({
code: '1',
msg: '操作失败'
})
} else {
res.json(ret)
}
}
// 按用户名查询用户信息
router.get('/login', (req, res) => {
var sql = $sql.admin_user.queryByName
// var params = req.query
var params = req.body
console.log('params.username',params.username)
conn.query(sql, [params.username], function (err, result) {
if (err) {
console.log(err)
}
if (result) {
console.log(result)
res.send(result)
}
})
})
// 增加用户接口
router.post('/addUser', (req, res) => {
var sql = $sql.admin_user.add;
var params = req.body;
console.log(params.username);
conn.query(sql, [params.username, params.password], function(err, result) {
if (err) {
console.log(err);
}
if (result) {
jsonWrite(res, result);
}
})
})
// 增加用户地址。router.put必须和前端的请求 put 一致
router.put('/putUserAddr', (req, res) => {
var sql = $sql.admin_user.putAddress;
var params = req.body;
console.log(params);
conn.query(sql, [params.address,params.id], function(err, result) {
if (err) {
console.log(err);
}
if (result) {
jsonWrite(res, result);
}
})
})
// 获取用户地址:使用req.query
router.get('/getUserAddr', (req, res) => {
var sql = $sql.admin_user.getAddress;
var params = req.query;
console.log(params);
conn.query(sql, [params.id], function(err, result) {
if (err) {
console.log(err);
}
if (result) {
jsonWrite(res, result);
}
})
})
module.exports = router
3.db.js文件
//db.js为数据库连接配置
// 数据库连接配置db.js
module.exports = {
mysql: {
host: '127.0.0.1', //mysql连接ip地址
user: 'root',
password: 'root', //mySql用户名密码
database: 'mbg', //mySql数据库名
port: '3306' //mysql连接端口
}
}
4.server.js 文件
//index.js用来定义与监听后端服务器
// node 后端服务器
const userApi = require('./api/userApi');
const goodsApi = require('./api/goodsApi')
// const bodyParser = require('body-parser');
const express = require('express');
const app = express();
/* app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true})); */
//在Express 4.16.0之后的版本,这两个中间件已经内置到 Express 中,无需额外安装 body-parser。
app.use(express.json())
app.use(express.urlencoded({extend:true}))
// 后端api路由
app.use('/user', userApi);
app.use('/goods', goodsApi);
// 监听端口
app.listen(3000,()=>{
console.log('success listen at port:3000......');
});
5.sqlMap.js文件
//sqlMap.js
var sqlMap = {
// 用户
admin_user: {
add: 'insert into t_user(username,password) values(?, ?)',
delete: 'delete from t_user where id = ?',
all: 'select * from t_user',
queryByName:'select * from t_user where username = ?',
queryById:'select * from t_user where id = ?',
getAddress: 'select * from t_user where id = ?',
putAddress: 'update t_user set address1 = ?, address2 = ?, address3 = ? where id = ?',
},
goods: {
// addGoodsCar: 'insert into `t_goodscar`(`goodsCompany`,`goodsDes`,`goodsName`,`goodsPrice`,`goodsNum`,`goodsPicture`) VALUES values (?, ?, ?, ?, ?, ?)',
addGoodsCar: 'insert into t_goodsCar(goodsCompany,goodsDes,goodsName,goodsPrice,goodsNum,goodsPicture,uid) values (?, ?, ?, ?, ?, ?, ?)',
allGoodsCar: 'select * from t_goodscar',
search: 'select * from t_goods where goodsName = ?',
queryById: 'select * from t_goods where id = ?',
all: 'select * from t_goods',
updateById: 'update t_goods set goodsNum = ? where id = ?',
}
}
module.exports = sqlMap;