一、准备工作

  创建代码目录,依次执行以下操作

  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().addressconst port = server.address().portconsole.log('Listen at http://%s:%s', host, port)
})

4.运行。

3个文件相关路径自己视情况配置。运行server1.js文件开启服务,node server1.js

此时打开浏览器,在地址栏输入http://localhost:3000/getTest1,可以看到接口返回的结果。

三、扩展连接数据库 mysql

  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().addressconst port = server.address().portconsole.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_MASTERINFOconn1.query(sql, (err, result) => {if (err){return res.json(err_result)} else{suc_result.data = resultreturn res.json(suc_result)} })
})// 查询所有的用户
app.get('/user/getAll', (req, res) => {const sql = sqlObj.GETALL_SQL_USERINFOconn1.query(sql, (err, result) => {if (err){return res.json(err_result)} else{suc_result.data = resultreturn res.json(suc_result)} })
})// getById
app.get('/api/getById', (req, res) => {const id = req.query.idconst sqlStr = sqlObj.GETBYID_SQL_MASTERINFOconn1.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

Node+express+mysql实现后台服务接口相关推荐

  1. node+express+mysql开发后台接口

    技术栈:node.express.mysql.postman(接口调试软件).sequelize(数据库映射模型).sequelize-auto(自动生成数据库映射模型).apidoc(注释语法生成 ...

  2. node + express + mysql 搭建后台

    基础配置 入口文件app.js var express = require('express'); var app = express(); var bodyParser = require('bod ...

  3. QQ18年,解密8亿月活的QQ后台服务接口隔离技术

    QQ18年 1999年2月10日,腾讯QQ横空出世.光阴荏苒,那个在你屏幕右下角频频闪动的企鹅已经度过了18个年头.随着QQ一同成长的你,还记得它最初的摸样吗? 1999年:腾讯QQ的前身OICQ诞生 ...

  4. node + express + sequelize + apidoc 后台初始化

    技术栈:express-generator + sequelize + apidoc 一.创建应用骨架: express官网 1. 创建文件夹,名称为:express 2. cd到express文件夹 ...

  5. node+express+mysql搭建一个系统

    1.使用express创建项目 参考连接 NodeJS+express如何新建一个自己需要的项目 1.安装exprss $npm install express -g $npm install exp ...

  6. php sequelize,node,express_sequelize 联合查询,node,express,mysql,sequelize - phpStudy

    sequelize 联合查询 我用sequelize 联合查询 db.user.hasMany(db.bbsuser,{foreignKey:'userId'}); db.bbsuser.belong ...

  7. 记录 vue项目打包放入 hbuilder 做app真机测试时 无法请求后台服务接口

    1.因为发布app时 vue开发模式下配置的跨域是无效的,打包后会找不到接口 例如下面是之前的错误版: '/propertyCmsAPI': {target: 'http://192.168.1.11 ...

  8. 腾讯技术分享:微服务接口设计原则

    来源|腾讯技术工程(ID:Tencent_TEG) 本文结合自身后台开发经验,从高可用.高性能.易维护和低风险(安全)角度出发,尝试总结业界常见微服务接口设计原则,帮助大家设计出优秀的微服务. 1.前 ...

  9. mysql第五章项目二_Todo List:Node+Express 搭建服务端毗邻Mysql – 第五章(第1节)

    点击右上方红色按钮关注"web秀",让你真正秀起来 前言 万丈高楼平地起,我们的Todo List项目也是越来越结实了.Todo List的前面4章内容都是在为Client端开发, ...

最新文章

  1. Cannot resolve method 'getParameter( )'
  2. python 线程锁 共享全局变量 线程通信
  3. IT人士必备五大绿色健康生活用品
  4. html保存blob,HTML文本图像并保存为Blob到数据库
  5. 服务器e5系列和e5v4系列,“芯”力量:四款至强E5 v4双路服务器横评
  6. u3d资源打包只能打包场景材质,不能打包脚本
  7. java 命令行参数 _java命令行参数
  8. 容器编排技术 -- AWS EC2快速入门
  9. 部署点评Cat监控项目(转)
  10. 滴滴自研分布式NoSQL数据库Fusion的演进之路
  11. Windows xp 驱动EPSON MT532打印小票始末
  12. STM32F1xx_StdPeriph_Driver——I2C
  13. [原创]战国的杀人机器白起
  14. 不管你学的是什么专业,你都应该多少懂些 (来自qq空间)(分享)(转载)
  15. Java实现给PDF每页右上角添加图片水印
  16. vs单步调试及断点调试基本介绍
  17. 火车头采集器 采集https网站 以及网站cookie 避免 蜘蛛 爬虫 程序等
  18. 理解Profiles, Services,Characteristics,UUID等值
  19. Orleans 2.0 官方文档 —— 4.8.1 Grains - Grain持久化 - grain持久化的目标
  20. 深度解析企业OA办公系统的好处有哪些?

热门文章

  1. pyspark--中位数计算
  2. mysql source 报错 Unknown command ‘\‘‘ 解决办法(本人的第一个博客嘿嘿)
  3. iOS底层原理之dyld应用程序加载
  4. python抢茅台_python实现简单淘宝秒杀功能
  5. ThinkPHP3.2.3新特性之:数据库设置
  6. 计算机二级报名时间2020年12月江苏省,江苏省本省市2020上半年计算机二级报名时间|网上报名入口【12月17日12时开通】...
  7. 汉王科技持续走下坡路,发展寻求突破
  8. 多个随机变量运算后的均值与方差计算
  9. 易快报创始人兼CEO马春荃:做企业费控报销领域的“无人驾驶”
  10. 一张图弄明白:从零维到十维空间