创建代码目录,依次执行以下操作
1.(若没有安装过)安装node
2.npm init(package.json)
3.安装express(请求)npm install express –save
1. http封装。http.js代码如下:
const express = require('express') const app = express() // 设置跨域 app.all('*', (req, res, next) => { res.header('Access-Control-Allow-Origin', '*') res.header('Access-Control-Allow-Headers', 'X-Requested-With') res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS') res.header('X-Powered-By', '3.2.1') res.header('Content-type', 'application/json;charset=utf-8') next() }) // exports.app module.exports = app
2. 模拟数据。这里先采用构造json数据结构的方式,resultData.js代码如下:
const express = require('express') const app = express() // 设置跨域 app.all('*', (req, res, next) => { res.header('Access-Control-Allow-Origin', '*') res.header('Access-Control-Allow-Headers', 'X-Requested-With') res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS') res.header('X-Powered-By', '3.2.1') res.header('Content-type', 'application/json;charset=utf-8') next() }) // exports.app module.exports = app
3. 写接口。server1.js代码如下
const app1 = require('./http') const res1 = require('./data') console.log(app1) // 接口1 app1.get('/getTest1', (req, res) => { res.status(200) res.json(res1) }) // 配置服务端口 const server = app1.listen(3000, () => { const host = server.address().address const port = server.address().port console.log('Listen at http://%s:%s', host, port) })
4.运行。
3个文件相关路径自己视情况配置。运行server1.js文件开启服务,node server1.js
此时打开浏览器,在地址栏输入http://localhost:3000/getTest1,可以看到接口返回的结果。
1.安装。npm install mysql -S
2.引入mysql。另外req.body需要对表单数据进行解析,所以还需引入body-parser
mysql.js如下:
// 创建数据库链接 const mysql = require('mysql') // 注意隐私 const conn = mysql.createConnection({ host: 'XXX', user: 'XXX', password: 'XXX', database: 'XXX' }) // 注册 解析表单的body-parser // const bodyParser = require('body-parser') // conn.use(bodyParser.urlencoded({extended:false})) module.exports = conn
sqlName.js如下:(封装连接的每张表的表名)
function sqls() { this.GETALL_SQL_USERINFO = 'SELECT * FROM userinfo' this.GETLIST_SQL_MASTERINFO = 'SELECT * FROM masterinfo' this.GETALL_SQL_MASTERINFO = 'select * from masterinfo where isdelete=0' this.GETBYID_SQL_MASTERINFO = 'select * from masterinfo where id=?' } module.exports = sqls
3.编写接口 同时封装返回的mess提示: suc_result 和 err_result
server.js如下:
/* document.all.filter(e => { return e.style.font-family.toLowerCase().indexOf('yahei') > -1 || e.style.font-family.toLowerCase().indexOf('雅黑') > -1 }) */ const conn1 = require('./mysql') const sqlsName = require('./sqlName') const app = require('./http') // 注册 解析表单的body-parser const bodyParser = require('body-parser') // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false})) // parse application/json app.use(bodyParser.json()); // 配置服务端口 const server = app.listen(3000, () => { const host = server.address().address const port = server.address().port console.log('Listen at http://%s:%s', host, port) }) const sqlObj = new sqlsName() //成功的返回 const suc_result = { "code": 0, "status": "200", "message": "success", } // 失败返回 const err_result = { "code": 1, "status": "200", "message": "查询失败", } // 查询所有的字典表 app.get('/master/getAll', (req, res) => { const sql = sqlObj.GETLIST_SQL_MASTERINFO conn1.query(sql, (err, result) => { if (err){ return res.json(err_result) } else{ suc_result.data = result return res.json(suc_result) } }) }) // 查询所有的用户 app.get('/user/getAll', (req, res) => { const sql = sqlObj.GETALL_SQL_USERINFO conn1.query(sql, (err, result) => { if (err){ return res.json(err_result) } else{ suc_result.data = result return res.json(suc_result) } }) }) // getById app.get('/api/getById', (req, res) => { const id = req.query.id const sqlStr = sqlObj.GETBYID_SQL_MASTERINFO conn1.query(sqlStr, id, (err, results) => { if(err) return res.json({err_code: 1, msg: '获取数据失败', affectedRows: 0}) if(results.length !== 1) return res.json({err_code: 1, msg: '数据不存在', affectedRows: 0}) res.json({ err_code: 1, msg: results[0], affectedRows: 0 }) }) })
这里只列举了两个查询接口,其他接口暂不赘述。
同理,运行: node server.js
调用接口,可以看到成功结果
最后为了方便大家的沟通与交流请加QQ群: 625787746
请进QQ群交流:【IT博客技术分享群①】:https://jq.qq.com/?_wv=1027&k=DceI0140