Atlassian Forge中使用Express JS报'process.cwd is not a function'错误求助
关于Atlassian Forge中使用Express JS的问题解答
1. 'process.cwd is not a function'错误成因
- Atlassian Forge的运行环境是沙箱化的Node.js环境,并非完整的Node.js运行时,
process对象的部分API被限制或未实现,process.cwd()就属于这类受限API。 - Express JS底层会调用
process.cwd()来处理文件路径、静态资源定位等逻辑,在Forge的受限沙箱中触发这个方法就会报错。 - 手动安装
process模块没用,因为Forge的沙箱会覆盖全局process对象,外部模块的实现不会生效;更新webpack也绕不开环境本身的API限制。
2. Atlassian Forge中可替代Express JS的方案
- Forge原生路由:用
@forge/api自带的路由能力直接定义接口,示例代码:import { route } from '@forge/api'; export const run = route(async (req) => { switch(req.method) { case 'GET': return { status: 200, body: '请求成功' }; default: return { status: 405, body: '不支持的请求方法' }; } }); - Hapi.js:Forge官方支持Hapi.js,它的路由系统不依赖
process.cwd()这类受限API,适合构建后端服务。 - 轻量函数式实现:如果业务逻辑简单,直接用Forge的函数处理请求,不需要完整框架,减少依赖更适配沙箱环境。
内容的提问来源于stack exchange,提问作者apoorva sharma
相关产品推荐
相关产品推荐

