You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级normalize-url依赖后出现permission denied错误该如何解决?

问题根因分析

你遇到的报错本质是运行node服务的用户没有initial-db.json的写入权限,和normalize-url依赖升级直接相关:
normalize-url 4.5.1修复了CVE-2021-33502安全漏洞,修改了路径解析逻辑,你项目依赖的json-server内部调用了normalize-url处理请求路径,升级后search请求的路径解析结果发生变化,触发了json-server的默认写入逻辑,而你升级前的解析逻辑只会触发只读操作,所以之前不会报错。

可行解决方案

你可以根据自己的业务场景选择以下任意一种方案:

  • 方案1:给服务运行用户开放文件写入权限
    仅给服务对应的运行账号开放文件读写权限即可,生产环境不建议直接给所有用户开放权限:
    # 替换<服务用户名> <服务用户组>为你实际运行node服务的账号信息
    sudo chown <服务用户名>:<服务用户组> /prod/msp/apps/src/data/initial-db.json
    sudo chmod 644 /prod/msp/apps/src/data/initial-db.json
    
  • 方案2:开启json-server只读模式
    如果你不需要通过接口修改initial-db.json的内容,启动json-server时添加--read-only参数即可关闭所有写入逻辑,从根源避免写文件操作:
    # 原有启动命令新增--read-only参数即可,示例如下
    json-server --read-only /prod/msp/apps/src/data/initial-db.json
    
  • 方案3:升级适配的json-server版本
    新版json-server已经适配了normalize-url 4.5.1的路径解析逻辑,直接升级json-server到最新稳定版即可解决路径匹配错误的问题:
    npm install json-server@latest
    

内容的提问来源于stack exchange,提问作者Constantin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 16:30:05