路由
- 1.路由:就是网址
- 2.路由参数:网址参数
普通语法
/*
* @Author: 41
* @Date: 2021-11-06 10:56:59
* @LastEditors: 41
* @LastEditTime: 2021-11-06 11:16:48
* @Description:
*/
// 1.引入express框架模块
var express=require('express')
// 2.创建框架核心app对象
var app=express()
// 3.路由
app.get('/',function(req,res){
var formHtml=`
<form action="/test" method="post">
<input type="text" name="uname" id="">
<input type="text" name="age" id="">
<input type="submit" value="">
</form>
`
res.send(formHtml)
})
app.get('/test',function(req,res){
res.send('this is get submit')
})
app.post('/test',function(req,res){
res.send('this is post submit')
})
// 4.启动服务
app.listen(8080,function(){
console.log('Running...')
})
在get请求中,我们指定了跳转路由action="/test"
和method
- 1.如果method是get
我们可以看到get方法在url里面会带参数,这是很危险的! - 2.如果method是post
post方法不会携带参数,因为post一共有两个报文!第一个是header第二个才是内容!
特殊语法
通过app.use
匹配任意方法!非完全匹配
/*
* @Author: 41
* @Date: 2021-11-06 11:25:33
* @LastEditors: 41
* @LastEditTime: 2021-11-06 11:26:36
* @Description:
*/
// 1.引入express框架模块
var express=require('express')
// 2.创建框架核心app对象
var app=express()
// 3.路由
app.get('/',function(req,res){
var formHtml=`
<form action="/test/a/b/c" method="post">
<input type="text" name="uname" id="">
<input type="text" name="age" id="">
<input type="submit" value="">
</form>
`
res.send(formHtml)
})
app.use('/test',function(req,res){
res.send('this is /test')
})
// 4.启动服务
app.listen(8080,function(){
console.log('Running...')
})
路由参数
/*
* @Author: 41
* @Date: 2021-11-06 11:30:55
* @LastEditors: 41
* @LastEditTime: 2021-11-06 11:35:59
* @Description:
*/
// 1.引入express框架模块
var express =require('express')
// 2.创建框架核心app对象
var app=express()
// 3.路由
app.get('/stu/:name/:age',function(req,res){
console.log(req.params);
res.send('匹配成功,快去控制台看看数据!')
})
// 4.启动服务
app.listen(8080,function(){
console.log('Running...');
})
托管静态文件
普通写法
/*
* @Author: 41
* @Date: 2021-11-06 11:42:02
* @LastEditors: 41
* @LastEditTime: 2021-11-06 11:48:01
* @Description:
*/
// 1.引入express框架模块
var fs=require('fs')
var express =require('express')
// 2.创建框架核心app对象
var app=express()
// 3.路由
// 响应指定静态资源
// app.get('/public/css/a.css',function(req,res){
// fs.readFile('./public/css/a.css','utf-8',function(err,data){
// if(err) res.send('error!')
// res.send(data)
// })
// })
// 响应多个静态资源
app.use('/public',function(req,res){
fs.readFile('./public'+req.url,'utf-8',function(err,data){
if(err) res.send('error!')
res.send(data)
})
})
// 4.启动服务
app.listen(8080,function(){
console.log('Running...');
})
express语法
在express中有特殊的语法等价于上面的写法express.static('目录名')
// 简写
app.use('/public',express.static('public'))