nodejs 近期所遇到的问题及解决

本文介绍了Node.js开发过程中遇到的一些常见问题及其解决方案,包括唯一约束引起的错误、时间处理、请求携带及监控token、页面渲染同步、管理员权限配置以及跨域设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、unique: true引起报错

用此方法设置唯一约束会引起node报错,解决方式如下:

unique: 'userName'

2、接口中的时间处理,时间偏移+格式化

loginDate: {
    type: DataTypes.DATE,
        get() {
            return moment(this.getDataValue('loginDate')).utcOffset(8).format('YYYY-MM-DD HH:mm:ss');
        }
    },

3、请求携带token

使用axios中的请求拦截器进行携带

axios.interceptors.request.use(
  function(config) {
    // 在发送请求之前做些什么
    // 1. 发送请求时,如果有token,则附带到请求头中去
    const token = localStorage.getItem("token");
    if (token) {
      config.headers.Authorization ="bearer " + token; 
    }
    return config;
  },
  function(error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

4、token过期时间实时监控

在axios的响应拦截器中进行监控,具体代码如下:

axios.interceptors.response.use(
  resp => {
  // 在请求响应之后做些什么
  // 2. 响应结果如果有token,保存token到本地
    if (resp.headers.authorization) {
    localStorage.setItem("token", resp.headers.authorization)
    }
    return resp;
  }, err => {
    // 3. 相应的时候,如果响应消息码是403(没有token,token失效),则在本地删除token
    if (err.response.status === 403) {
      localStorage.removeItem("token");
      router.push("/login");
    }
    return Promise.reject(err);
});

5、页面渲染落后于vueX的数据时

直接将数据动态设置到vuex中,具体代码如下:

<div class="welcome">
    <i class="el-icon-user"></i>
    欢迎登录,{{ this.$store.state.loginUser.data.userName }}
</div>

6、系统的管理员架构问题

超级管理员:只有一个,拥有查看所有数据,修改所有数据的权限,不可删除和禁用自己

高级管理员:通过超级管理员开启高级权限,可拥有查询所有数据,修改所有普通管理员用户数据的权限,不可删除和禁用高级管理员及以上用户,不可查看修改权限列。

普通管理员:不可查看用户管理模块,可查看常规数据。

7、设置跨域、跨域获取header里面的信息

通过cors中间件实现

//设置跨域
const cors = require('cors')
app.use(cors());
//设置可以跨域获取header里面authorization的信息
app.all('*', function(req, res, next) {
    res.header('Access-Control-Expose-Headers', 'Authorization');
    next();
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值