学习链接: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