Node.js POST请求在本地正常工作,但在部署后始终未找到404



我想创建一个端点,其他人可以在其中发布数据,然后我可以使用它进行进一步的操作。我正在使用lambda和无服务器框架进行部署。它在我的本地运行良好,但每次部署时都会出现404未找到错误。(部署没有问题(.我在测试API时在失眠中得到以下消息-无法POST/测试/更新(测试是我的基本路径(我已经交叉验证了域,它们与serverless.yml文件中的域完全相同。目前,我有以下代码用于后请求-

const express = require('express')
const eApp = express()
eApp.post('/update', async (req, res) => {
try {
// console.log('post req is:', req)
console.log('body', JSON.stringify(req.body))
res.sendStatus(200)
}
catch (e) {
console.log('error in post request is:',e)
res.sendStatus(200)
}
})
exports.eApp = eApp
const handler = serverless(eApp)
module.exports.handler = async (event, context) => {
context.callbackWaitsForEmptyEventLoop = false
const result = await handler(event, context)
return result
}

(以上代码存在于routes文件夹中的index.js中(。serverless.yml文件中的lambda函数如下所示-

updateEndPoint:
handler: routes/index.handler
events:
- http:
path: /update
method: post
cors: true

我在cloudwatch日志中也没有得到任何错误,也找不到问题的根本原因。如有任何帮助,我们将不胜感激。提前感谢!!

EDIT-它使用aws中lambda中提到的域地址(aws自动分配的地址(,但不使用我在serverless.yml文件中给出的域地址。有什么解决办法吗??

尝试添加

functions:
api:
handler: index.handler
events:
- httpApi: '*'

默认无服务器,它像这样只允许"/"路径

functions:
api:
handler: index.handler
events:
- httpApi:
path: /
method: get

我知道这已经很晚了,但为未来的用户保留它。

最新更新