express

下载

  •  npm i express --save 

响应内容

响应字符串

app.get('/', (req, res) => {
  res.setHeader('Content-Type', 'text/html;charset=utf-8')
  res.send('<h1>你好我是Express框架</h1>')
})

响应JSON

app.get('/', (req, res) => {
  res.setHeader('Content-Type', 'application/json');
  res.json({"name": "zs", "age": 66})
})

响应JSONP

app.get('/', (req, res) => {
  res.jsonp({"a": 1, "b": 2, "c": [1,2,3,4], "d": {"e": 678}})
})
    $.ajax({
      "url": "http://127.0.0.1:3000",
      "dataType": "JSONP",
      "success": function (data) {
        console.log(data, 'data');
      },
      "callback": "mashibing"
    })

响应一个 html

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/public/index.html')
})

设置静态目录

app.use(express.static(__dirname + '/public'))

设置模板引擎

app.set('view engine', 'ejs')
app.set('views')
  • 设置模板引擎为 ejs
  • 设置模板引擎文件夹路径

请求参数获取

get请求参数获取

app.get('/get_data', (req, res) => {
  console.log(req.query);
})

post请求参数获取

  • 借助第三方包处理 post 请求中的参数  npm i formidable --save 
const formidable = require('formidable')

app.post('/post_data', (req, res) => {
  const form = formidable({multiples: true})
  form.parse(req, (err, fields, files) => {
    console.log(fields);
  })
})

delete请求参数获取

const formidable = require('formidable')
app.delete('/delete_data', (req, res) => {
  const form = new formidable.IncomingForm()
  form.parse(req, function (err, fields, files) {
    console.log(fields);
    res.send(`成功获取delete参数`)
  })
})

put请求参数获取

const formidable = require('formidable')

app.put('/put_data', (req, res) => {
  const form = new formidable.IncomingForm()
  form.parse(req, function (err, fields, files) {
    console.log(fields);
    res.send(`成功获取put参数`)
  })
})

cookie

app.get('/', function (req, res) {
  res.cookie('t', "abc123", {'maxAge': 1000 * 60 * 60 * 24})
  res.send('设置cookie')
})
  • 设置cookie并配置过期时间

使用 cookie-parser 来获取前端带来的cookie信息

  •  npm install cookie-parser 
const express = require('express')
const cookieParser = require('cookie-parser')
const app = express()

app.use(cookieParser())

app.get('/', function (req, res) {
  console.log(req.cookies);
  res.send('获取cookie')
})

 session

  • 服务端用来保存数据,与浏览器中的  window.sessionStorage 没有关系
  •  npm i express-session 
const express = require('express')
const session = require('express-session')

const app = express()

app.use(session({
  secret: 'keyboard cat', // 签名
  name: 'zhangsan', // 返回客户端签名的 key
  resave: false, // 默认为true即使session没有发生变化也会强制保存
  saveUninitialized: true, // 强制将没有初始化的session存储起来
  cookie: { maxAge: 86400}, // 设置 cookie 
  rolling: true, // 每次请求时强行设置 cookie 这将重置cookie的过期时间
}))

app.get('/:name', function (req, res) {
  // 保存到 session 中
  req.session.name = req.params.name
  res.send('首页')
})

app.listen(3000, () => {
  console.log('listen 3000 ok')
})

 跨域

const express = require('express')
const app = express()

app.get('/', (req, res) => {
  // 配置请求的域名 * 代表通配符
  res.header('Access-Control-Allow-Origin', '*');
  // 支持跨域请求类型
  res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE');
  // 配置请求头信息 包含字符集等
  res.header('Content-Type', 'application/json;charset=utf-8')
  res.json({
    msg: '配置完成'
  })
})

app.listen(3000)

 

posted @ 2022-02-11 20:36  霸哥yyds  阅读(167)  评论(0)    收藏  举报