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

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();
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你在使用 Node.js 时遇到了没有权限创建 lnk 的问题,那么可能是因为你在使用的模块需要在系统目录创建 lnk 文件,但是你没有给 Node.js 足够的权限去执行这个操作。 解决方法有两种: 1. 尝试使用管理员权限运行 Node.js,这样就可以让 Node.js 具有足够的权限去创建 lnk 文件。 2. 将你的 Node.js 项目放到一个你有写入权限的目录,这样就可以避免因权限问题而导致的错误。 希望这些建议能帮助你解决问题。 ### 回答2: 在Node.js,无法直接使用内置模块或 API 来创建快捷方式(.lnk 文件),因为这涉及到操作系统层面的功能。然而,可以通过使用外部命令或第三方模块来解决这个问题。 一种常见的解决方案是使用 Node.js 的 `child_process` 模块执行操作系统的命令行命令来创建快捷方式。可以使用`child_process`的`exec`函数来执行`mklink`命令(适用于Windows)或`ln`命令(适用于Linux和Mac)来创建快捷方式。示例如下: ```javascript const { exec } = require('child_process'); // 在Windows创建快捷方式 exec('mklink "C:\\path\\to\\newlink.lnk" "C:\\path\\to\\target"'); // 在Linux和Mac创建符号链接 exec('ln -s /path/to/target /path/to/newlink'); ``` 另一种解决方案是使用第三方模块,如`windows-shortcuts`(适用于Windows)或`symlink`(适用于Linux和Mac)来创建快捷方式。这些模块封装了底层的操作系统命令,使你可以在 Node.js 更方便地创建和管理快捷方式。示例如下: ```javascript // 在Windows使用`windows-shortcuts`模块创建快捷方式 const shortcut = require('windows-shortcuts'); shortcut.createShortcut('C:\\path\\to\\newlink.lnk', 'C:\\path\\to\\target'); // 在Linux和Mac使用`symlink`模块创建符号链接 const symlink = require('symlink'); symlink.create('/path/to/target', '/path/to/newlink'); ``` 通过执行操作系统命令或使用第三方模块,可以解决 Node.js 无法直接创建快捷方式的权限问题。根据操作系统的不同,选择适当的方法来创建快捷方式或符号链接。 ### 回答3: 解决Node.js没有权限创建lnk文件的问题可以通过以下方法进行: 1. 以管理员身份运行命令提示符:打开命令提示符,在开始菜单找到命令提示符,右键单击并选择“以管理员身份运行”。这将以管理员权限打开命令提示符。 2. 使用非管理员账户手动创建lnk文件:如果你没有管理员权限,你可以手动创建lnk文件。首先,在目标文件夹创建一个快捷方式,然后将其复制到你需要的位置。这样,你就可以绕过权限问题,成功创建lnk文件。 3. 使用第三方软件创建lnk文件:如果以上方法都不能解决问题,你可以考虑使用第三方软件来创建lnk文件。有许多免费和收费的软件可用于创建和管理lnk文件,如 “Shortcut.exe” 或 “Link Shell Extension”。你可以通过搜索引擎来找到适合你的软件,然后按照软件的说明进行操作。 需要注意的是,如果你没有管理员权限或者是在受限制的环境,使用第三方软件可能会违反规定。在这种情况下,最好联系系统管理员或负责人员来获取更多帮助和支持,以确保你在合规的情况下解决问题。 总结,要解决Node.js没有权限创建lnk文件的问题,你可以通过以管理员身份运行命令提示符、手动创建lnk文件或使用第三方软件进行操作。选择合适的方法取决于你的具体情况和权限限制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值