3

如果我误解了这应该如何工作,请原谅,我对无服务器世界相当陌生。

我想避免在我的serverless.yml文件中明确列出我的所有路由,所以使用了 catch all {proxy+}

当我跑步时,sls offline start我看到列出了一条路线

ANY | http://localhost:3000/dev/{proxy+}

但是,例如,当我尝试访问时,localhost:3000/dev/test-one我看到以下错误Cannot GET /%7Bproxy+%7D而不是我的预期响应。

我误解了如何使用它吗?

ps - 当我在我的yml文件中明确列出我的路线时,这有效,但如果可能,我想避免这种情况。

serverless.yml

service: simply-serverless-web

provider:
  name: aws

plugins:
  - serverless-offline
  - serverless-express

functions:
  app:
    handler: app.handler
    events:
      - http:
          path: /{proxy+}
          method: ANY
          cors: any

app.js

const express = require('serverless-express/express')
const handler = require('serverless-express/handler')
const app = express()

app.all('/test-one', require('./test-one'))
app.all('/test-two', require('./test-two'))
app.all('/test-three', require('./test-three'))

exports.handler = handler(app)

4

1 回答 1

0

问题是dev您在 url 中使用的阶段。我认为它不适合serverless-offline环境。

它应该是(没有dev

ANY | http://localhost:3000/{proxy+}

希望这可以帮助。

于 2020-01-23T19:45:07.223 回答