mongodb 如何使用netlify的无服务器功能创建动态路由

sqxo8psd  于 2023-03-17  发布在  Go
关注(0)|答案(1)|浏览(109)

我在Mongo中使用Netlify的无服务器功能来创建react应用程序可以作为端点的rest API访问的路线。
按照mongo的文档https://www.mongodb.com/developer/languages/javascript/developing-web-application-netlify-serverless-functions-mongodb/,我们可以使用netlify的CLI来创建路由。
例如,命令:

netlify functions:create --name get_movies

创建javascript文件在:

netlify/functions/get_movies.js

并且为了访问该路由,它将是:

http://localhost:8888/.netlify/functions/get_movies

当路由是静态的时候,这一切都很好,但是如何处理动态路由呢?
例如,我希望有一个采用查询参数movie_name的路由:

http://localhost:8888/.netlify/functions/<movie_name>

根据movie_name的不同,响应会有所不同。如何实现这一点?

djmepvbi

djmepvbi1#

我个人建议使用像Express或Fastify这样的框架与AWS Lambda集成来实现类似的功能,但如果您希望避免增加依赖列表,可以使用以下方法实现:
1.将以下代码添加到您的netlify.toml中。这是一个Netlify Redirect

[[redirects]]
  forcec = true
  from = "/movie/:name"
  status = 200
  to = "/.netlify/functions/get_movies/:name"

1.在get_movies.js文件中,您可以执行以下操作:

const movieName = event.rawUrl.substring(event.rawUrl.lastIndexOf('/') + 1)

这将为您提供URL的最后一段(仅当它不以/结尾时)。
然后,您可以/movie/name的身份访问电影

相关问题