在nodejs环境中我们可以利用nodejs+express+mysql去创建后台环境
Nodejs: 运行在非浏览器端的JavaScript(Nodejs是运行javascript的环境)。
express: 一款基于Nodejs, 用于快速创建web服务(后台)的框架。
mysql :数据库,持久化存储数据的工具。
1.环境:Nodejs环境
(可以通过nvm 管理nodejs版本)
检查nodejs 版本 ------------> node -v
2.mysql数据库
数据库是一种让数据持久化储存的工具
通过集成环境的环境安装, 例如: phpstudy wamp 使用mysql
3.数据库可视化管理软件
下载Navicat 可以创建数据库以及数据表
以上三个步骤完成就可以开始创建web服务(搭建后台项目)
4.利用express框架快速搭建后台项目
文档地址:Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网
-----------> 安装nodemon自动执行代码 npm install -g nodemon
-----------> 全局安装express 生成器 npm install -g express -generator
--------> express 项目名
生成一个后台的项目结构
5.访问URL
6.设置模板引擎
把 jade 模板 设置成 html 模板
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
------>下载ejs npm install ejs
修改代码
javascript">//把以下代码
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');//修改成
// 视图渲染引擎
app.set('views', path.join(__dirname, 'views'));
// 配置Express 视图引擎
app.engine('html', ejs.__express);
app.set('view engine', 'html');
7.GET 请求
javascript">// 写个 GET 请求的测试方式方法
// 地址: http://localhost:3000/api/user/test
// 方式: GET (可以通过浏览器地址栏测试)
// 参数: page pageSize id
router.get('/test', async (req, res)=>{// 接收通过GET方式提交的参数let { page,pageSize,id } = req.query;// 判断参数是否有值if(page === undefined || pageSize === undefined || id === undefined) {res.send({code: -1,msg: '缺少参数' })}else {res.send({code: 200,msg: '获取参数列表成功',page,pageSize,id })}
})
8.POST 请求
npm install body-parser
在入口文件app.js加入以下代码
var bodyParser = require('body-parser') // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json())
javascript">// 写一个POST 请求的测试方法
// 地址: http://localhost:3000/api/user/example
// 方式: POST (不能直接通过浏览器地址栏测试,可以通过postman postcode form等)
// 参数: user_name user_pwd
router.post('/example' , async (req,res)=>{// 接收通过POST方式提交的参数let {user_name, user_pwd } = req.body;if(user_name === undefined || user_pwd === undefined) {res.send({code: -1,msg: '缺少参数'})}else {res.send({code: 200,msg: '请求成功。',user_name})}
})
9.设置cors
------------>设置资源跨域共享 npm install cors
const cors = require('cors');// 做资源跨域共享 // 设置资源跨域共享 app.use(cors());
10.下载 mysql模块
-------> 下载mysql模块 npm install mysql
数据库配置
创建 ------------> database.js
创建 -----------> db.js
javascript">//创建database.js 文件
// 数据库配置文件
module.exports = {mysql :{host:'47.93.52.8',//user--->填的是你数据库的useruser:'schools',//password--->填的是你数据库的passwordpassword:'schoolyard123456',// 数据库的名称database:'schools',port:3306}
}
javascript">//配置db.js 文件
module.exports = {//调用query方法执行sql语句query: function (sql) {// 返回操作数据库的promisereturn new Promise((resolve, reject) => {// 连接数据库pool.getConnection(function (err, connection) {// 执行sql语句connection.query(sql, function (err, rows) {// 操作失败if(err){reject(err)}// 操作成功else {resolve(rows);}// 释放连接connection.release();})})})}
}
11.常见的sql语句
查询
// 查询db_message这个表格的所有字段 // let sql = `select * from db_message`; // let sql = `select title, content from db_message`;
条件查询
查询db_message这个表格的所有字段
let sql = `select * from db_message where id='${id}'`; // let sql = `select * from db_message where id='${id}' and author= '${author}'`; let sql = `select * from db_message where id='${id}' or author= '${author}'`;
关键字查询(模糊查询)
查询db_message这个表格的所有字段
let sql = `select * from db_message where title like '%${keyword}%' or author like '%${keyword}%'`;
插入数据
// 查询db_message这个表格的所有字段
let sql = `insert into db_message(title,content,author)values('${title}','${content}','${author}')`;
删除数据
根据id 删除db_message这个表格的相应的记录
let sql = `delete from db_message`
let sql = `delete from db_message where id = '${id}'`