Node.js POST 请求在本地正常工作,但部署后总是给出 404 not found

问题描述 投票:0回答:1

我想创建一个端点,其他人可以在其中发布数据,然后我可以使用它进行进一步的操作。我正在使用 lambda 和无服务器框架进行部署。它在我的本地工作正常,但每次部署时都会给出 404 notfoundError。(部署中没有问题)。在测试 API 时,我在失眠中收到以下消息- 无法发布/测试/更新 (测试是我的基本路径) 我已经交叉验证了这些域,它们与 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日志中也没有收到任何错误,也找不到问题的根本原因。任何帮助,将不胜感激。预先感谢!

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

node.js amazon-web-services aws-lambda serverless-framework insomnia
1个回答
0
投票

尝试添加

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.