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

在IIS下运行NodeJS脚本遇Buffer()弃用警告求助

解决Windows IIS+iisnode环境下Buffer()弃用错误的离线方案

问题定位

你提到的fs、http、path、readline、url都是Node.js核心模块,不会引入弃用的Buffer()调用,问题大概率出在express或其依赖的第三方包,也可能是iisnode自身版本过旧导致。另外先确认服务器上的Node.js版本:运行node -v,因为Buffer()构造函数在v6后被标记弃用、v10后完全移除,若Node.js版本过旧,也可能触发该错误。

离线环境排查与修复步骤

  1. 本地镜像环境排查依赖

    • 在能联网的机器上搭建和服务器相同版本的Node.js环境,复制项目的package.json和package-lock.json到本地
    • 执行npm install安装所有依赖,然后用npm ls查看依赖树,定位到哪个第三方包在使用弃用的Buffer()
    • 若无法直观找到,可使用npm audit(本地联网可用)扫描依赖中的弃用API调用
  2. 替换问题包版本

    • 找到问题包后,查其官方更新日志,选择修复了Buffer()弃用问题的稳定版本
    • 在本地执行npm pack <包名>@<目标版本>,生成对应的.tar.gz包文件
    • 将该包文件拷贝到服务器项目目录,执行npm install ./<包文件名>.tar.gz完成离线替换
  3. 检查并更新iisnode

    • 若排查后不是项目依赖的问题,可能是iisnode版本过旧,在本地下载iisnode最新稳定版的安装包
    • 拷贝到服务器后卸载旧版本,重新安装新版iisnode,重启IIS服务
  4. 应急临时方案(不推荐长期使用)
    若暂时无法找到问题包,可在项目入口文件顶部添加以下代码兼容:

    global.Buffer = global.Buffer || require('buffer').Buffer;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:43:14