介绍
mongo-rest-middleware-express 是一个基于 Express 的 Node.js 中间件,它可以让你在 Express 应用程序中快速生成可以直接与 MongoDB 数据库进行交互的 RESTful API。这个包提供了一个简洁的方式来管理 MongoDB 数据库连接,并自动生成常见的 RESTful API 端点,如 GET、POST、PUT 和 DELETE。
在这篇文章中,我们将详细介绍如何使用 mongo-rest-middleware-express,包括安装和基本配置,还会演示如何生成 RESTful API 端点和如何自定义配置。
安装
安装 mongo-rest-middleware-express 非常简单,只需要在你的项目中使用 npm 安装它即可:
npm install mongo-rest-middleware-express --save
基本配置
为了使用 mongo-rest-middleware-express,需要在 Express 应用程序中导入它以及相应的 MongoDB 依赖:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- - ----------- - - ------------------- ----- ------------------- - ----------------------------------------- ----- --- - ---------- ----- ---- - ----- ----- ----------- - --- ---------------------------------------- - ---------------- ----- ------------------- ----- --- ------------------------- -- - -- ----- - ------------------- ---------------- - ---------------------- -- ---------- ----- -- - ------------------------------ -- -- ----------------------------- --------------------------- --------------- ------------------------- ---------------- -- -- - ---------------- -- --------- -- --------------------------- --- ---
在这个配置中,MongoClient 和 bodyParser 的作用相信大家都很清楚了,重点是 mongoRestMiddleware 这个中间件的使用。
mongoRestMiddleware(db) 是一个可以直接应用到 Express 应用程序上的函数,它需要一个连接到 MongoDB 数据库的 db 对象作为参数。它会自动创建所有 RESTful API 端点,并将它们附加到 /api 前缀下。
下面我们来看一下自动生成的 RESTful API 端点。
生成的 RESTful API 端点
由于 mongo-rest-middleware-express 自动生成 RESTful API 端点,所以我们不需要手动创建路由器和处理程序来完成每个 HTTP 动词。这是一个非常简单的例子,它显示了 mongo-rest-middleware-express 自动生成的路由和处理程序。
-- -------------------- ---- ------- ----- -- - ------------------------------ --------------------------- -- -- ----------------------------- --------------- ------------------------- -- --- -------------------- -- ---------- -- ------ ------------------------------- -- -- ----- -------- --------------------- ----- ---- -- - ------------- --------- --- --------- -- --- ----- -------------- --- -- --- ------------------------ -- ------------ -- ------ -------------------------------------------------------- -- -- ----- --- --- - ------------------------ --- ------------------------- ----- ---- -- - ----- - -- - - ----------- ------------- --------- -------- ---- -- ------- -- --- ----- -------------- --- -- ---- -------------------- -- ---------- -- ------- ------------------------------- -- -------- ----- --- ---------------------- ----- ---- -- - ------------- ------- - --- -------- -- --- ----- ---------- ---- --- --------- ----- ------------------------------- --- -- --- ------------------------ -- ---------- -- ------ -------------------------------------------------------- -- -- ----- --- --- - ------------------------ --- ------------------------- ----- ---- -- - ----- - -- - - ----------- ------------- ------- -------- ---- -- ------- -- --- ----- ---------- ---- --- --------- ----- ------------------------------- --- -- ------ ------------------------ -- -------- -- --------- -------------------------------------------------------- -- - ----- ----- --- - ------------------------ --- ---------------------------- ----- ---- -- - ----- - -- - - ----------- ------------- ------- -------- ---- -- ------- ---- --- ----- -------------- --- ---------------- -- -- - ---------------- -- --------- -- --------------------------- ---
上面展示了通过手动创建路由器和处理程序来实现一组传统的 RESTful API 端点的方式,与我们前述自动生成的完全不同。可以看到自动生成的方式非常简单且声明性强,我们的业务逻辑也能更加清晰地展示。当然,在一些定制场景下,我们仍然需要手动处理每个 HTTP 请求,但这并不是批量化的全套业务逻辑,在这样的情况下,我们也可以在自动生成的路由之上直接定义和添加自己的限制或者函数处理逻辑。
自定义配置
mongo-rest-middleware-express 允许在自动生成的 RESTful API 端点和其他配置之间进行自定义,就像你在 Express 应用程序中定义其他路由一样灵活。
在下面的例子中,我们故意使用了一个不存在的收藏夹名,这将触发一个错误消息。我们将错误处理程序放在了最后,以便任何其他操作都不会返回错误消息。
-- -------------------- ---- ------- ----- -- - ------------------------------ --------------------------- -- -------------------- -- ------ --- -- -- --- ---------------------------------------- -- ------------ -- ------ ------------------------------------------------------- -- -- ---------- -------- ---------- --- ---------------------------------------------- ----- ---- ----- -- - ----- - ---------- - - ----------- ----- ------ - - ------- ---------- -- ----- ------- - - ----------- - ------- - - -- --------------------------- ------------- -------- -------------- ----- -- - -- ----- - ------ ---------- - --------------- --- --- -- ------ ------------- ---- ---- ----- -- - ------------------- ------------------------------ ------ --------- --- -- ---------- ---- ----------------------------- ------------- ---- ----- -- - ------------------------- --------- --- ---------------- -- -- - ---------------- -- --------- -- --------------------------- ---
在此配置示例中,我们重载了原先自动生成的 /api/:collectionName 中的方法,并给他添加了 :flavorName 这样一个自定义 URL 参数。这将允许我们查询 ice-creams 集合中相关口味的所有文档。这个重写采用了我们这个应用程序中特有的验证方式,并直接读取 ice-creams 集合进行操作。之后,我们添加了两个更加通用化的错误处理程序,分别在 500 和 404 的情况下发送不同的消息给客户端。
结论
在这篇文章中,我们介绍了如何使用 mongo-rest-middleware-express 在 Express 应用程序中创建 RESTful API 端点。我们探讨了自动生成的 RESTful API 端点以及如何自定义限制和业务逻辑。最后,我们介绍了如何进行通用错误处理和路由处理。 希望你能掌握这篇文章中的内容,并在开发中使用到它们,它们对于你和你的团队都将提供很大的便利。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005668881e8991b448e2c17