服务器上线全攻略(五)——上线注意事项

react上线的疑难杂症

基础一堆配置就不说了,可以参考服务器配置

一. 数据发送

    const bodyParser = require('body-parser');
    app.use(bodyParser.urlencoded({ extended: false }))
    
    //想要直接获取post数据
    //解析application/json或者前台使用qs
    app.use(bodyParser.json())

二. 区分环境

本地不要使用localhost就算上传到服务器也会失败,直接使用服务器ip地址

    baseURL:"http://127.0.0.1:8989/", 本机测试地址
    baseURL:"http://49.235.18.58:8989/", 服务器地址

但每次改又贼费劲,于是必须来一波区分了。

三. 允许cookie传递

1. 客户端

因为用的axios

需要开启

withCredentials: true

    const service=axios.create({
      // baseURL:" https://www.easy-mock.com/mock/5d3911c824ff2f226dcaf0b4/boss",
      baseURL:"http://127.0.0.1:8989/",
      // baseURL:"http://49.235.18.58:8989/",
      timeout:10000,
      withCredentials: true //是否携带cookie
    })

使用express-session完成手机验证码

2. 服务器的设置
  • 要允许发送cookie
  • 要指定源
    app.use(cors({
      credentials: true, //同意发送cookie
      origin: 'http://localhost:3000', // web前端服务器地址
      // origin: '*' // 这样会出错
    }))

如果是多个服务器地址

    app.use(cors({
      credentials: true, 
      origin: ['http://localhost:3000',xxxxx]// web前端服务器地址
      // origin: '*' // 这样会出错
    }))

配置session

  • 安装

cnpm i express-session -S

  • 使用
    app.use(session({
      secret: 'code', //设置签名密钥
      resave: false, //强制保存,如果session没有被修改也要重新保存
      saveUninitialized: true,//如果原先没有session那么久设置,否则不设置
      cookie: {
          maxAge: 1000*60 //存储时长
      },
      rolling:true //如果一直浏览网页并不会因为session过期而产生影响
    })
);
  • 读取

req.session.code

  • 设置

req.session.code="100010"

  • 注销

req.session.destroy()

流程

  • 服务器的端口,需要在nginx配置,比如 http://49.235.18.58:8080
  • 客户端的端口,需要在服务端配置允许跨域访问 http://49.235.18.58:8080
  • 服务端的端口,需要在客户端里配置baseURL http://49.235.18.58:3030
  • nginx的路径设置为客户端打包后的地址
  • 使用pm2启动server.js
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值