npm init -y
npm i -S express
npm i -D nodemon //执行node程序,并实时监听文件变化,文件有变化时,无需重启,它会自动重启
const express = require('express')
// 创建web服务
const app = express()// 监听 get请求
// req 请求对象
// res 响应对象
('请求URI',(req,res)=>{// 向客户端响应数据res.send({id:1,name:'张三'})
})// 监听POST请求
app.post('请求URI',(req,res)=>{})put/delete/use 等
app.use() 模糊接受所有的请求// 启动服务
app.listen(8080,()=>{})//获取URL中的查询参数 ,通过 req.query 对象
('/',(req,res)=>{console.log(req.query)
})//获取URL中的动态参数,通过通过 req.params 对象
('/:id',(req,res)=>{console.log(req.params)
})
// 引入express模块
const express = require('express')
// 执行express函数,得到服务对象
const app = express()
// 开启服务器并绑定对应的主机和端口
app.listen(3000, '0.0.0.0', () => {console.log('服务器启动');
})
// 静态资源服务器 可以设置多个
app.use(express.static('www'))
app.use(express.static('web'))
// 访问的前缀 在uri开头以 /admin开始则进行静态管理
app.use('/admin', express.static('admin'))
/* app.use(express.static('www', {etag: false
})) */
路由基本信息
// 引入express模块
const express = require('express')
// 执行express函数,得到服务对象
const app = express()
// 开启服务器并绑定对应的主机和端口
app.listen(3000, '0.0.0.0', () => {console.log('服务器启动');
})// 定义路由
// express对象.http请求动作(pathname,处理回函数)
// get请求 获取 200
('/user', (req, res) => {// 响应res.send('user')
})// post请求 添加 201
app.post('/user', (req, res) => {let postData = '('data', chunk => postData += ('end', () => {res.send(postData)})
})// 修改 完全修改(put)和增量修改(patch) 201/202
app.put('/user', (req, res) => {res.send('put')
})// 删除 delete http状态码 204 => 没有响应体
app.delete('/user', (req, res) => {res.send('delete')
})
入口文件
// 引入express模块
const express = require('express')
// 执行express函数,得到服务对象
const app = express()
// 开启服务器并绑定对应的主机和端口
app.listen(3000, '0.0.0.0', () => {console.log('服务器启动');
})// 定义路由
// 匹配规则: 从文件上向下匹配,一旦匹配成功则不向下执行(默认)
// 书写规则: 精确写上面,模糊写在下面 // 获取所有的http请求动作 精确匹配 /user
/* app.all('/user', (req, res) => {res.hod)
}) */// 精确
('/user/100', (req, res) => {res.send('user/100')
})// 动态路由参数 如果动态路由参数中 ? 可选参数 可传可不传
/* ('/user/:id', (req, res) => {res.send('user/200')
}) */
('/user/:id/:name?', (req, res) => {res.send(req.params)
})// 通配符 * 所有 可以用它来做 404页面
/* app.all('*', (req, res) => {res.status(404).send('404页面')
}) */// 获取所有的http请求动作 模糊匹配 /user /user/a /user/b /user/...
// 请求以/user开头的路由
/* app.use('/user', (req, res) => {res.hod)
})*/
// 所有的请求
app.use((req, res) => {res.status(404).send('404页面!!')
})
控制器文件,control
// 用户控制器
// 数据
const users = require('../models/userModel')ports = {// 用户列表index(req, res) {res.send({code: 0,msg: 'ok',data: users})},// 查看当前id用户信息show(req, res) {let ret = users.find(item => item.id == req.params.id)if (ret) {res.send({code: 0,msg: 'ok',data: ret})} else {res.send({code: 1000,msg: 'ok',data: null})}},store(req,res){// 在此处写md5加密 专门加密 -》 交给下一个 req或res用自定义属性 req.pass = md5(admin) next()// 添加用户 -> 向数据库写数据 -> req.userinfo = {} next()// 给用户响应 res.send(req.userinfo)}
models数据文件
// 用户数据 mysql mongodb ...
ports = [{ id: 1, name: '张三', pass: 'aa' },{ id: 2, name: '李四', pass: 'bb' },
];
中间件分为:
内置中间件 也就是express本身自带无带npm安装
第三方中间件
//自定义中间件
function mfn(req,res,next){// 中间件最后一定要执行此函数,否则程序无法向下执行下去next()
}//内置中间件
app.use(express.static('托管目录地址'))//==============================================
npm i -S body-parser
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
app.listen(3000)// 关联
// querystring / qs
// application/x-www-form-urlencoded
/* app.use(bodyParser.urlencoded({ extended: false }))
// application/json
app.use(bodyParser.json()) */app.use(express.urlencoded({ extended: false }))
app.use(express.json())app.post('/login', (req, res) => {res.send(req.body)
})
cookie: 服务器端向客户端发送cookie并指定cookie的过期时间。 浏览器将cookie保存起来。之后每次请求都会将cookie发向服务器端,在cookie没有过期时间内服务器都可以得到cookie中的值。
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
// 中间件引入
app.use(cookieParser());('/', (req, res) => {// 服务器端通过req来获取cookie数据if (kies.username) {console.kies);res.send('再次欢迎你');} else {
// cookie设置过期时间为1天
// maxAge 设置cookie过期时间 毫秒kie('username', 'admin', {maxAge: 86400*1000});res.send('欢迎你~');}
});app.listen(3000)
session中的数据保留在服务端的。session的原理是通过一个sessionid来进行的,sessionid是放在客户端的cookie中,当请求到来时候,服务端会检查cookie中保存的sessionid是否有,并且与服务端的session数据映射起来,进行数据的保存和修改,也就是说当我们浏览一个网页时候,服务端会随机生成一个1024比特长的字符串,然后存在cookie中的sessionid字段中,当我们下次访问时,cookie会带有sessionid这个字段。
const express = require('express');
const session = require('cookie-session');
const app = express();app.use(session({name: 'sessionId',// 给sessionid加密的key,随便填写ssecret: 'afsfwefwlfjewlfewfef',//maxAge: 20 * 60 * 1000 // 20分钟
}));('/, (req, res) => {if(!req.session['view']){req.session['view'] = 1;}else{req.session['view']++;}res.send(`欢迎您第 ${req.session['view']} 次访问!`);
})
app.listen(3000)
本文发布于:2024-01-30 15:40:20,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170660042321058.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |