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

AWS Lambda调用Node.js无服务器函数报错:server is not a function

解决AWS Lambda中"server is not a function"错误

问题原因

你遇到的TypeError: server is not a function错误,是因为aws-serverless-express的createServer方法返回的是一个包含proxy方法的对象,而非可直接调用的函数。你当前代码里直接把server当作函数执行,这不符合库的使用规范。

修正代码

将你的handler部分修改为调用server对象的proxy方法即可:

import express from 'express';
import routes from './startup/routes.js';
import db from './startup/db.js';
import { createServer } from 'aws-serverless-express';

const app = express();

routes(app);
db();

const server = createServer(app);
// 改用proxy方法处理事件和上下文
export const handler = (event, context, callback) => {
  server.proxy(event, context, callback);
};

如果你的Lambda运行环境支持Promise(Node.js 14+),也可以用async/await的写法:

export const handler = async (event, context) => {
  return new Promise((resolve, reject) => {
    server.proxy(event, context, (err, result) => {
      err ? reject(err) : resolve(result);
    });
  });
};

额外检查项

  • 确保已正确安装依赖:执行npm install aws-serverless-express --save,避免使用过时版本的库。
  • 确认Lambda的Node.js运行时版本与依赖兼容(推荐使用18.x或20.x版本)。
  • 打包部署时,确保所有依赖项都被包含在部署包中(比如用zip打包时不要遗漏node_modules文件夹,或使用Serverless Framework等工具自动处理)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:12:08