安装express、登录接口

2019年9月8日 评论

安装(使用脚手架 express)

// npm 全局安装 express-generator
npm install express-generator -g
// 用 express 命令生成一个项目
express express-test
// 最后
npm install & npm start

介绍 express 入口代码

  • morgan 日志插件
  • cookie-parser cookie插件
const cookieParser = require('cookie-parser')
app.use(cookieParser)
// 在这之后就可以通过
req.cookie // 获取 cookie 的值

演示express如何处理路由

  • app.js
const blogRouter = require('./routes/blog');
app.use('/users', usersRouter);
  • ./routes/blog
const express = require('express');
const router = express.Router();
router.get('/list', (req, res, next) => {
    const { username, password } = req.body
    res.json({
        errno: 0,
        data: [1,2,3]
    })
})
  • ./routes/user
const express = require('express');
const router = express.Router();
router.post('/login', (req, res, next) => {
    const { username, password } = req.body
    res.json({
        errno: 0,
        data: {
            username,
            password
        }
    })
})

express中间件

const express = require('express');
const app = express();
app.use((req, res, next) => {
    console.log('请求开始')
    next();
})
// 假设处理 cookie
app.use((req, res, next) => {
    req.cookie = {
        userId: 123
    }
    next()
})

// 假设处理 postData
app.use((req, res, next) => {
    setTimeout(()=> {
        req.body = {
            a: 100,
            b: 200
        }
        next()
    })
})

app.use('/api', (req, res, next) => {
    console.log('处理 api 路由')
    next()
})

app.get('/api', (req, res, next) => {
    console.log('get /api 路由')
    next()
})

app.post('/api', (req, res, next) => {
    console.log('post /api 路由')
    next()
})

app.get('/api/get-cookie', (req, res, next) => {
    console.log('get /api/get-cookie')
    res.json({
        errno: 0,
        data: req.cookie
    })
})

app.post('/api/post-data', (req, res, next) => {
    console.log('post /api/post-data');
    res.json({
        errno: 0,
        data: req.body
    })
})

app.use((req, res, next) => {
    console.log('处理404')
    res.json({
        errno: -1,
        msg: '404 not fount'
    })
})

app.listen(3000, () => {
    console.log('sever is running on port 3000')
})

登录

  • 使用 express-session 和 connect-redis 简单方便
  • res.session 保存登录信息,登录校验做成 express 中间件
// 安装 express-session
npm install express-session --save
// 导入
const session = require('express-session');
app.use(session({
    // secret [秘密的、机密的] 这里做秘钥的用途
    secret: 'ixxapp_2019',
    cookie: {
        path: '/', // 默认配置 可不写
        httpOnly: true, // 确保前端不能访问cookie 默认配置 可不写
        maxAge: 24 * 60 * 60 * 1000 // 失效时间
    }
}))
// 安装 redis
npm install redis connect-redis --save
  • 利用 redis 存储
const session = require('express-session')
const RedisStore = require('connect-redis')(session)

// 引用 redisClient
const redisClient = require('./db/reids')
const sessionStore = new RedisStor({
    client: redisClient
})
app.use(session({
    secret: 'ixxapp_2019',
    cookie: {
        maxAge: 24 * 60 * 60 * 1000
    },
    store: sessionStore
}))
weinxin
我的微信
爱生活、爱学习的小伙伴可以通过扫一扫二维码添加我的个人微信一起交流!
gitbook常用的插件 java

gitbook常用的插件

1. 说明 本文主要讲解gitbook插件的使用。gitbook使用教程请参考我另一篇文章:https://segmentfault.com/a/11... Gitbook默认自带有5个插件: hig...
如何从官网下载 Google Chrome 离线安装包 java

如何从官网下载 Google Chrome 离线安装包

Google Chrome 已经是许多人的默认浏览器,但由于“你懂的”原因,在线安装基本没有成功过,他自己的自动更新也多数一直在加载中,所以我们会到一些下载站下载安装包,但我的多次经历告诉我,下载回来...
学习大纲 express 框架

学习大纲

目录 express 下载、安装和使用,express中间件机制开发接口, 连接数据库, 实现登录, 日志记录分析 express 中间件原理
预防XSS攻击 java

预防XSS攻击

攻击方式: 在页面展示的内容中掺杂js代码,以获取页面信息。 预防措施: 转换生成的js特殊字符 后端预防: Node npm包工具 xss 实现 npm i xss --save // 安装成功后 ...
匿名

发表评论

匿名网友