我在node.js中运行无服务器脱机。当我尝试在Postman上命中POST端点时,请求将永远继续并且似乎不调用我的处理程序。我没有在请求体中发送任何东西。没有什么区别。
下面是我正在运行的代码示例
handlers.js文件module.exports.postHandler = async (event, context, callback) => {
console.log("Inside POST Method");
}
在serverless.yml
postHandler:
handler: src/handlers.postHandler
events:
- http:
method: post
path: v1/post/handler
我有一个非常类似的GET方法设置。这看起来很好
编辑:我尝试在无效的POST路由上发送空请求。邮差仍然不停地发送请求。当我用GET尝试同样的方法时,我得到了错误- Serverless-offline: route not found。不知道为什么POST请求不能解析。
您需要在post请求处理程序中响应客户端,但您不需要。返回200并给出一个空json响应,它将工作
还要确保你正在发送到API POST路由,并提供它需要的数据。即)
的例子:
// dont forget content type and content length headers
POST(host, path, { body: { ...data } })
例子得到:
GET(host, path, "?query=params")
你当前的处理程序
module.exports。postthandler = async (event, context, callback) =>{console.log("Inside POST Method");}
,
module.exports.postHandler = async (event, context, callback) => {
context.status = 200;
context.message = "Youre welcome"
}
我也遇到过同样的问题。
在我的情况下,GET请求工作,但POST请求没有返回任何响应,调用将永远继续。
我做了三件事来解决这个问题。
- 我更新了
serverless-offline
依赖到最新版本。
npm i -D serverless-offline@latest
- 在
serverless.yml
文件中,我将NodeJs的运行时环境更新为当前系统上安装的运行时环境。
provider:
runtime: nodejs16.x
- 在
serverless.yml
文件中,我根据最新版本的依赖项更新了自定义设置。
custom:
serverless-offline:
httpPort: 9000