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

NodeJS中Express的res对象传入外部模块后调用res.send报错如何解决

报错原因

JavaScript是大小写敏感的编程语言,Express框架的响应对象res提供的响应内容发送方法为全小写开头的res.send(),你在外部动态加载的JS模块中写的是首字母大写的res.Send(),二者不是同一个方法,所以会触发res.Send 未定义的报错。你打印res对象时只能看到对象本身存在,但不会自动提示你拼写的大小写错误。

修复方法

修改外部模块的代码,把res.Send("test")替换为正确的小写方法名即可:

exports.run = function run(req,res)
{
    res.send("test") // 修正方法名大小写
    console.log(res)
    res.end()
}
可选优化建议

当前你的动态加载逻辑用的是require加载JS文件,require本身自带模块缓存机制,修改对应的JS文件后需要重启Node服务才能生效。如果你需要实现热更新效果,可以在加载前清除对应模块的缓存:

const jsPath = '/Js/'+list.find(x => x.pageUrl == path).js
delete require.cache[require.resolve(jsPath)]
const js = require(jsPath)
js.run(req,res)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:54:04