node搭建API接口平台学习笔记

学习链接:https://www.bilibili.com/video/BV1A7411N7KZ?p=1

一、初始化项目

1、安装node、npm、express。
//查看版本
node -v
npm -v
express --version
//express安装方法
npm install express -g
npm install -g express-generator //4.X版本,把generator分离出来了,需要单独安装
2、执行“express [项目名]”,即可创建一个新的express项目。
//例如express apiLearn创建一个命名为apiLearn的项目。
express apiLearn
3、进入项目根目录,执行“npm install”安装相关依赖。
npm install
4、启动项目。
npm start
//↓↓↓ 也可这样启动
node ./bin/www
5、默认端口是3000,此时可成功访问“localhost:3000”。

二、数据库的连接与测试

1、改写入口文件,默认在bin目录下的www文件,现在要改成app.js。改写完成后,可删除bin目录。
//在app.js里添加
var http = require('http');
var server = http.createServer(app);
//在app.js最后添加监听3000端口
server.listen('3000');
2、重新启动项目。
//注意:改写完成后,不能再使用node ./bin/www启动项目。
node app.js
3、安装MySQL模块。
npm install mysql --save
4、创建数据库,添加数据表cate并插入数据。

在这里插入图片描述
在这里插入图片描述

5、在根目录下创建util目录,在util目录下创建dbconfig.js文件。
6、编辑dbconfig.js文件。
const mysql = require('mysql');
const {
    connect } = require('../routes');
module.exports = {
   
    //数据库配置
    config: {
   
        host: 'localhost',
        port: '3306',
        user: 'root',
        password: 'Luo1998==',
        database: 'exapp',
    },
    //连接数据库,使用MySQL的连接池连接方式
    //连接池对象
    sqlConnect: function (sql, sqlArr, callBack) {
   
        var pool = mysql.createPool(this.config)
        pool.getConnection((err, conn) => {
   
            console.log('12345')
            if (err) {
   
                console.log('连接失败');
                return;
            }
            //事件驱动回调
            conn.query(sql, sqlArr, callBack);
            //释放连接
            conn.release();
        })
    }
}
7、修改routes目录下的index.js文件。
var express = require('express');
var router = express.Router();
var dbConfig = require("../util/dbconfig")

/* GET home page. */
router.get('/', function (req, res, next) {
   
  var sql = "select * from cate";
  var sqlArr = [];
  var callBack = (err, data) => {
   
    if (err) {
   
      console.log("连接出错了");
    } else {
   
      res.send({
   
        "list": data
      })
    }
  }
  dbConfig.sqlConnect(sql, sqlArr, callBack);
  // res.render('index', { title: 'Express' });
});

module.exports = router;
8、热启动。它的作用是监听代码文件的变动,当代码改变之后,保存即可自动重启。
//安装热启动工具
npm install nodemon -g
//使用热启动工具
nodemon app.js
9、重新启动项目,访问“localhost:3000”即可得到以下页面。

在这里插入图片描述

三、请求方法的封装

1、在根目录下创建controllers目录,在controllers目录下创建cateController.js文件。
2、编辑cateController.js文件。
var dbConfig = require("../util/dbconfig")
//获取分类
getCate = (req, res) => {
   
    var sql = "select * from cate";
    var sqlArr = [];
    var callBack = (err, data) => {
   
      if (err) {
   
        console.log("连接出错了");
      } else {
   
        res.send({
   
          "list": data
        })
      }
    }
    dbConfig.sqlConnect(sql, sqlArr, callBack);
}
module.exports = {
   
    getCate
}
3、修改routes目录下的index.js文件。
var express = require('express');
var router = express.Router();
var cate = require('../controllers/cateController');


/* GET home page. */
router.get('/', cate.getCate);

module.exports = router;
4、启动项目。
nodemon app.js
5、成功访问。

在这里插入图片描述

6、改写app.js文件,删除一些不必要的代码。
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

//改写
var http = require('http');
var server = http.createServer(app);

app.use(express.urlencoded({
    extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

server.listen('3000');

四、带参数获取列表

1、创建数据表post并添加数据。

在这里插入图片描述
在这里插入图片描述

2、编辑controllers目录下cateController.js文件。
var dbConfig = require("../util/dbconfig")
//获取分类
getCate = (req, res) => {
   
    var sql = "select * from cate";
    var sqlArr = [];
    var 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值