首页 > Node.js开发WEB项目后端接口API,基于mysql5.7数据库(小试牛刀)

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

项目结构

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框架简单读取数据库信息并渲染完成文章列表详情页功能(小试牛刀)》

更多相关:

  • mutable的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。   在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。   我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成cons...

  • 前言:很多人都把const int * 、int * const、int const* 的区别和联系搞混,我自己在学习C++的过程中,也经常性          弄不 清楚,今天特意总结一下,作为学习笔记记录下来。 一,const修饰符用于指针         将const用于指针有些很微妙的地方,有两种不同的方式将const关键...

  •   注意,前情提示: 本代码基于《Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)》 传送门Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)_你挚爱的强哥❤给你发来1条消息❤-CSDN博客   在/api/demo/文件夹下面创建exportAndDownl...

  • ES6 你可能不知道的事 – 基础篇 转载 作者:淘宝前端团队(FED)- 化辰 链接:taobaofed.org/blog/2016/07/22/es6-basics/   序   ES6,或许应该叫 ES2015(2015 年 6 月正式发布),对于大多数前端同学都不陌生。   首先这篇文章不是工具书,不会去过多谈概念,而是...

  •     先吐为敬!   最近心血来潮研究nodejs如何完成微信支付功能,结果网上一搜索,一大堆“代码拷贝党”、“留一手”、“缺斤少两”、“不说人话”、“自己都没跑通还出来发blog”、“各种缺少依赖包”、“各种注释都没有”、“自己都不知道在写什么”的程序大神纷纷为了增加自己博客一个帖子的名额而发布了各种千奇百�...

  • 阅读ceph源码过程中需要明确当前操作是由哪个线程发出,此时需要根据线程id来确认线程名称 C++获取线程id是通过系统调用来直接获取 函数描述 头文件: 函数名称:syscall(SYS_gettid) 该函数直接返回了一个pid_t int类型的数字,即为当前线程id 此外函数pthread_s...

  • 面试题 分库分表之后,id 主键如何处理? 面试官心理分析 其实这是分库分表之后你必然要面对的一个问题,就是 id 咋生成?因为要是分成多个表之后,每个表都是从 1 开始累加,那肯定不对啊,需要一个全局唯一的 id 来支持。所以这都是你实际生产环境中必须考虑的问题。 面试题剖析 基于数据库的实现方案 数据库自增 id 这个就是说你的...

  • ORM操作    单表、一对多表操作 1 from django.db import models 2 3 4 class UserGroup(models.Model): 5 title = models.CharField(max_length=32) 6 7 8 class UserInfo(m...

  • 建立如下表: 建表语句: class表创建语句 create table class(cid int not null auto_increment primary key, caption varchar(32) not null)engine=innodb default charset=utf8;student表创建语句 c...