//调用模块
const express=require('express')
//创建服务器
const app=express()
//打开监听
app.listen(80,function(){
console.log('express server running');
})
app.get('/test',(req,res)=>{
//拿到客户端传输数据
console.log(req.query);
})
app.post('/test',(req,res)=>{
res.send('响应post成功')
})
通过res.send()方法
//响应给客户端
res.send({
nane:'test',
date:'2022'
})
req.query.name=jack
rea.query.age=20
app.get('/test/:id',(req,res)=>{
//拿到客户端传输数据
console.log(req.params);
})
//结果id:2
1. express.static()通过它可以创建一个静态服务器,将图片,css文件,js文件对外开放
public文件夹下有一个index.html文件
const express=require('express')
const app=express()
app.use(express.static('../public'))
app.listen(80,function(){
console.log('express server tunning');
})
//浏览器输入http://localhost/index.html拿到html中内容
const express=require('express')
const app=express()
app.use('public',express.static('../public'))
app.listen(80,function(){
console.log('express server tunning');
})
//注意这次输入地址前要加public
//浏览器输入http://localhost/public/index.html拿到html中内容
const express=require('express')
const app=express()
//挂载到app下
app.get('/',function(req,res){
console.log('hello get');
})
app.get('/use',function(req,res){
console.log('hello use');
})
app.post('/',function(req,res){
console.log('hello post');
})
app.listen(80,function(){
console.log('express server running');
})
//客户端输入http//127.0.0.1得到响应为hello get,输入http//127.0.0.1/use得到结果响应hello use
//创建一个router文件
const express=require('express')
const router=express.Router()
//挂载对象
router.get('/use',(req,res)=>{
res.send('hello router get')
})
router.post('/use',(req,res)=>{
res.send('hello router post')
})
module.exports=router
//使用路由模块
const express=require('express')
const app=express()
//使用路由
const myRouter=require('./router')
//注册路由模块
app.use(myRouter)//aap.use()注册中间件
app.listen(80,()=>{
console.log('exprss srever running')
})
//浏览器输入http//127.0.0.1/use响应结果为hello router get
app.get('url',function(req,res,next){
next()
})
const express=require('express')
const app=express()
const midFun=function(req,res,next){
console.log('middle function');
next()
}
app.listen(80,()=>{
console.log('express server running');
})
const express=require('express')
const app=express()
//简单中间件
const midFun=function(req,res,next){
console.log('middle function');
next()
}
//注册为全局中间件
app.use(midFun)
//也可简写成
// app.use((req,res,next)=>{
// console.log('middle function');
// next()
// })
app.get('/',(req,res)=>{
res.send('hello midFun')
})
app.listen(80,()=>{
console.log('express server running');
})
const express=require('express')
const app=express()
//简单中间件
const midFun=function(req,res,next){
const time=Date.now()
//挂载在req上
req.startTime=time
next()
}
//注册为全局中间件
app.use(midFun)
app.get('/',(req,res)=>{
res.send('startTime',req.startTime)
})
app.listen(80,()=>{
console.log('express server running');
})
const express=require('express')
const app=express()
//简单中间件
const midFun=function(req,res,next){
const time=Date.now()
req.startTime=time
next()
}
//注册为局部中间件
app.get('/',midFun,(req,res)=>{
res.send('startTime 局部')
})
app.get('/use',(req,res)=>{
res.send('startTime')
})
app.listen(80,()=>{
console.log('express server running');
})
使用多个中间件
app.get('/',[midFun,midFun2],(req,res)=>{
res.send('startTime 局部')
})
const express=require('express')
const app=express()
app.get('/',function(req,res){
throw new Error('服务器出错');
res.send('home page')
})
app.use((err,req,res,next)=>{
console.log('err',err.message);
res.send('err',err.message)
})
app.listen(80,function(){
console.log('express listen running');
})
app.use(express.json())
app.use(express.urlencoded({extended:false}))
const express=require('express')
const app=express()
//导入内置模块
const qs=require('querystring')
//解析表单数据中间件
app.use((req,res,next)=>{
//在数据较大时,会分成很多次传输,所以需要定义str保存
let str='';
//监听req事件
req.on('data',(chunk)=>{
str+=chunk
})
//监听req的end事件
req.on('end',function(){
const change=qs.parse(str)
req.change=change
next()
})
})
app.post('/test',(req,res)=>{
res.send(req.change)
})
app.listen(80,function(){
console.log('express server running');
})
router.get('/get',(req,res)=>{
//拿到客户端传输数据
const query=req.query
//响应给客户端
res.send({
status:0,//0表示成功
msg:'get请求成功',//具体描述
data:query
})
//通过get请求时响应{status:0,msg:'get请求成功' ,data:请求的内容}
})
router.post('/post',(req,res)=>{
//拿到客户端传输数据
const body=req.body
//响应给客户端
res.send({
status:0,//0表示成功
msg:'get请求成功',//具体描述
data:body
})
//通过post请求时响应{status:0,msg:'get请求成功' ,data:请求的内容}
})
const express=require('express')
const app=express()
app.use(express.urlencoded({extended:false}))
//响应jsonp数据请求
app.get('/test/jsonp',(req,res)=>{
//前端需要以这种方式发起请求
const funName=req.query.callback
const name={name:'jack',age:20}
//拼接成字符串后传给客户端
const str=`${funName}${JSON.stringify(name)}`
res.send(str)
})
app.listen(80,function(){
console.log('express listen running');
})
//以jsonp发送请求时响应结果为自己请求的内容与name:'jack',age:20