项目结构

main.js(入口文件,开启9999端口监听,实现RESTful风格接口访问)

const express = require("express");
const app = express();
const port = 9999;//设置端口号,如果端口号被占用需要自己修改,否则无法跑起来(建议不要用80和8080,一般情况都会被占用)
app.listen(port, () => console.log(`http://127.0.0.1:${port}/user/select`));//打印一下接口用例地址
app.use(require("body-parser").json());
app.use(require("body-parser").urlencoded({extended: false}));
//设置跨域访问
app.all("*", function (req, res, next) {res.header("Access-Control-Allow-Origin", "*");res.header("Access-Control-Allow-Headers", "*");res.header("Access-Control-Allow-Methods", "*");res.header("X-Powered-By", "http://www.shuzhiqiang.com");res.header("Content-Type", "application/json;charset=utf-8");res.header("Access-Control-Allow-Credentials",true);//携带cookie跨域请求req.method.toUpperCase() === "OPTIONS" ? res.sendStatus(200) : next();//防止在预请求阶段就响应接口
});
//加入前端需要访问的接口API名称↓↓↓↓
app.use("/user", require("./api/user"));
app.use("/area", require("./api/area"));

api/user.js(业务实现数据查询)

//全局Express框架
const express = require("express");
const router = express.Router();
module.exports = router;//加载配置文件
const config = require("../config/mysql");
const mysql = require("mysql");
const conn = mysql.createConnection(config);//查询数据(all方法支持POST、GET、PUT、PATCH、DELETE传参方式)
router.all("/select", (req, res) => {// 定义SQL语句const id = req.body.id || req.query.id;const sqlStr = "select * from user " + (id ? "where id = ?" : "");conn.query(sqlStr, id, (err, res) => {if (err) return res.json({code: 404, data: "获取失败"});res.json({code: 0, data: res});});
});

api/area.js(业务实现数据查询)

//全局Express框架
const express = require("express");
const router = express.Router();
module.exports = router;//加载配置文件
const config = require("../config/mysql");
const mysql = require("mysql");
const conn = mysql.createConnection(config);//查询数据(all方法支持POST、GET、PUT、PATCH、DELETE传参方式)
router.all("/select", (req, res) => {// 定义SQL语句const id = req.body.id || req.query.id;const sqlStr = "select * from area " + (id ? "where id = ?" : "");conn.query(sqlStr, id, (err, result) => {if (err) return result.json({code: 404, data: "获取失败"});res.json({code: 0, data: result});});
});

config/mysql.json(数据库配置,支持mysql5.7+)

{"host": "localhost","port": "3306","user": "root","password": "root","database": "ycapi"
}

按照上面的方式创建好项目后,记得在根目录运行:

cnpm i express & cnpm i mysql & node main

启动项目后这样访问:

http://127.0.0.1:9999/user/select

http://127.0.0.1:9999/area/select

就可以查询到数据返回的json结果了,同时也可以用POST或者GET方式传参id

________________________

您还可能对如何用Vue.js框架访问Nodejs后端接口API感兴趣,传送门↓

《Vue.js框架简单读取数据库信息并渲染完成文章列表详情页功能(小试牛刀)》

Node.js开发WEB项目后端接口API,基于mysql5.7数据库(小试牛刀)相关推荐

  1. Node.js之 express写后端接口

    参考 https://blog.csdn.net/studysinklc/article/details/103166451 一 1 首先,新建一个Node.js项目,在项目目录下安装express ...

  2. Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 eclipse重置视图 MySQL数据库--建数据库.建数据库 s ...

  3. js和css和img,Node.js压缩web项目中的js,css和图片

    安装node.js 这个非常简单,下载下来,配置下环境变量就可以了,使用node -v查看是否安装成功 安装压缩需要的模块分别是uglify-js,clean-css,node-smushit 命令是 ...

  4. Node.js压缩web项目中的js,css和图片

    2019独角兽企业重金招聘Python工程师标准>>> 安装node.js 这个非常简单,下载下来,配置下环境变量就可以了,使用node -v查看是否安装成功 安装压缩需要的模块分别 ...

  5. Node.js的Web后端开发调研

    1. nodejs写后端优缺点(讲解nodejs与js区别) 1.1 Node.js是什么 Node.js 是一个开源与跨平台的 JavaScript 运行时环境 在浏览器外运行 V8 JavaScr ...

  6. 详细记录基于vue+nodejs+mongodb构建的商城学习(四)基于项目的node.js开发后端的学习与梳理总结...

    前置: 本系列文章是一个本人边学习边梳理的学习笔记,俗话说好脑袋不如烂笔头,再好的记忆力时间长了也会有细节忘记,本项目选择的前端框架是vue,后端开发使用是node.js,数据库使用的是mongodb ...

  7. Vue.js+Node.js开发实战:从入门到项目上线

    <Vue.js+Node.js开发实战:从入门到项目上线>以JavaScript语言为基础,以一个完整的网站开发过程为主线,介绍了一整套面向Web项目的开发技术,如使用Node.js搭建服 ...

  8. 区块链】利用Node.js开发与合约交互的Web界面

    区块链]利用Node.js开发与合约交互的Web界面 2018-03-11 16:10:37 宣之于口 阅读数 6128  收藏 更多 分类专栏: 区块链 区块链学习笔记 版权声明:本文为博主原创文章 ...

  9. 《Node.js开发指南》MicroBlog项目的问题汇总

    重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 最近对Node产生了点兴趣,就看了<Node.js开发指南>一书,按照书中的例子敲完了所有代码.书是好书,非常适合 ...

最新文章

  1. 【转载】ABAP自定义长文本的处理
  2. BZOJ 1070 修车
  3. 职场交流:一位软件工程师的7年总结
  4. java 读取 邮件 附件,JavaMail 中对附件下载的处理
  5. 计算机软件服务板块,信息技术板块
  6. C/C++ const
  7. wamp 出现 The requested URL / was not found on this server
  8. C#积木游戏(改编自DevExpress GridTetris)
  9. 盘点大数据分析AI工具的常用算法
  10. 实现米思齐的数码管图形化编程
  11. Mac系统MATLAB_R2018a软件CVX下载及安装
  12. Office基础操作:Word、PPT 表格文字居中
  13. Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
  14. STM32蓝牙控制LED灯开关
  15. Windows Server 2016修改计算机名
  16. 名帖77 刘弘珪 楷书《金刚般若波罗蜜经》
  17. 关于 fatal error LNK1158: 无法运行“rc.exe” 的解决方法
  18. js继承(ES5,ES6)
  19. [机缘参悟-95] :不同人生和社会问题的本质
  20. 可以下载专利文献的网址

热门文章

  1. 中国顶级黑客45秒使用声音来破坏您的计算机
  2. C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
  3. DIV+CSS规范命名大全集合
  4. XMPP通讯开发-好友获取界面设计
  5. c++标准库 及 命名空间std
  6. DB2 9 使用拓荒(733 检讨)认证指南,第 2 部分: DB2 数据操作(6)
  7. JAVA基础(JAVA 执行环境) 第一天
  8. .NET(C#)连接各类数据库-集锦
  9. OpenCV+python:圆检测
  10. codeforces round 416 div2补题