使用 `nodemon` 工具来自动重启web服务器
express【node中开发web项目的框架】
1. 定义:
一个快速的网站开发框架,封装了原生的http模块,用起来更方便;API更人性化
2. 特点:
1)基于node.js,进一步封装http模块,提供更好用的api
2)使用express创建的网站,比使用原生的http模块更方便
3)它并没覆盖原生http模块的方法,而是基于其之上,做了更友好的封装
3. 安装与使用
安装:npm i express -S
创建基本的服务器:
1)导入express第三方模块:const express = require('express')
2)创建服务器实例:const app = express()
3)通过app.get()或app.post()方法来监听用户发出的get或post请求
监听get请求:app.get(' 请求地址 ', callback)
监听post请求:app.post(' 请求地址 ', callback)
4)启动express服务器:app.listen(端口, ip地址, callback)
4. 快捷方法
1. res.send()
支持发送字符串、对象和数组格式的数据;发送Buffer当做文件下载
2. res.sendFile() -> 可以向浏览器发送静态页面
用法1:res.sendFile(path.join(__dirname,'待发送文件的路径'))
用法2:res.sendFile('待发送文件的路径',{root: __dirname})
5. 托管静态资源【express.static()】
如果网站中有许多静态资源需要被外界访问,那么res.readFile()就显得麻烦了
此时express框架提供的该方法就为我们托管了指定目录下的静态资源文件,很方便
托管后的文件可以直接在浏览器中访问到
1. app.use(express.static(' 静态资源文件夹路径 '))
app.use() -> 注册中间件
express.static() -> express内置中间件
2. app.use('虚拟路径',express.static(' 静态资源文件夹路径 ')) 了解即可
6. 配置EJS模板引擎
1. 安装:npm i ejs -S
2. 配置默认模板引擎:app.set('view engine', 'ejs')
3. 配置模板页面路径:app.set('views', '模板页面路径')->没有这个默认路径为views文件
-> app.set('views','./views')
4. 渲染模板页面:res.render(' 渲染的模板页面 ',{ 要渲染的数据对象 })
-> app.render(' index.ejs ',{name:'老王', age: 18, hobby: ['唱歌', '跳舞']})
注意:模板页面的后缀名可以省略不写,模板页面命名的后缀必须为.ejs
7. 配置art-template模板引擎
1. 安装:cnpm i art-template express-art-template -S
2. 自定义模板引擎:app.engine('自定义模板引擎的名称', 渲染函数)
-> app.engine('html',require(' express-art-template '))
配置模板引擎、模板页面路径、渲染模板页面与ejs一样
使用路由来分发请求
1. 路由是什么?一种对应关系 路径 <--> 数据
2. 后端路由?前端的一个url请求,对应后端的一个处理函数。对应关系:url -> 处理函数
3. express中路由的职责:把请求分发到对应的处理函数中
4. 如何定义与使用:
1)定义:封装单独的router.js路由模块文件
const express = require(' express ')
const router = express.Router() 创建路由对象
router.get( ' / ', ( req, res ) => { } )
router.get( ' /movie ', ( req, res ) => { } )
module.export = router 导出路由对象
2)使用:
const router = require(' ./router.js ') 导入自己的路由模块
app.use( router ) 使用app.use( ) 方法来注册路由
中间件【了解,实际开发用第三方现成的中间件】
定义:就是一个处理函数 , 包含3个参数:
req【请求对象】,res【响应对象】、next【next(),调用下一个中间件方法】
分类(5种):
1)应用级别:挂载到app上的中间件 app.get(' url地址 ', callback)
2)路由级别:挂在到router对象上的中间件 router.get(' url地址 ', callback)
3)错误级别:回调函数有4个参数 app.use( ( err, req, res, next ) => { } )
4)唯一内置的中间件:express.static()
5)第三方中间件:手动安装的才能使用的中间件
C:/Users/donghai/AppData/Local/YNote/data/m17521375932@163.com/9cb0673d57124b34b4f7b7c877c54143/clipboard.png
操作数据库
安装:cnpm i mysql -S
导入:const mysql = require(' mysql ')
创建连接对象:const conn = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'js_mysql'
});
sql语句:
查询:select * from users
新增:insert into users set ?
修改:update users set uname = ? where uname = ?
删除:delete from users where id = ?
执行操作:conn.query( sql语句,[, 填补的数据 ],(err, result) => { .. } )
|
|