使用catalyst serve测试Catalyst Node函数时遇“默认导出非函数”错误
解决Catalyst Node函数本地测试报错:The default export is not a function
错误原因
你的代码仅创建了Express应用,但未导出Catalyst Node函数要求的默认入口函数。Catalyst本地服务期望你的代码导出一个可执行的处理函数作为请求入口,因此触发该错误。
修改方案
提供两种适配方式,根据你的需求选择:
方式1:直接导出请求处理函数(适合简单场景)
'use strict'; module.exports = async (req, res) => { if (req.path === '/health' && req.method === 'GET') { res.sendStatus(200); } else { res.sendStatus(404); } };
方式2:适配现有Express应用(适合多路由场景)
保留你的Express路由配置,只需在代码末尾添加导出语句,将app作为处理函数导出:
'use strict'; var express = require('express'); var app = express(); app.use(express.json()); app.get('/health', async (req, res) => { res.sendStatus(200); }); // 导出Express应用作为Catalyst的入口处理函数 module.exports = app;
验证步骤
- 替换原代码为上述修改后的版本
- 重新执行
catalyst serve启动本地服务 - 访问
https://localhost:3000/server/node_function/health,即可正常返回200状态码
内容的提问来源于stack exchange,提问作者Vasanth Kumar
相关产品推荐
相关产品推荐

