前言:generator-men-api 是一个用于创建基于 Node.js、Express、MongoDB、Mongoose 的后端 API 项目的 Yeoman Generator。本文将介绍如何使用该工具创建项目,并对一些需要注意的地方进行深入讲解和指导。
准备工作
在开始使用 generator-men-api 之前,你需要确保你的计算机上已经安装了 Node.js 和 MongoDB。如果你没有安装过,可以从官网下载这两个软件并按照提示安装。
安装完 Node.js 后,你还需要安装 Yeoman:
npm install -g yo
安装完 Yeoman 后,我们就可以安装 generator-men-api 了:
npm install -g generator-men-api
创建项目
现在我们可以使用 generator-men-api 创建项目了。
- 首先,在你想要创建项目的文件夹中打开终端。
- 输入以下命令:
yo men-api
- 紧接着,系统会让你输入项目名称。输入名称后,按回车键。就像这样:
- 系统会让你输入数据库名称和连接字符串。你可以使用默认值,也可以输入自己的值。就像这样:
- 接下来,系统会让你输入 JWT 密钥、管理员邮箱和管理员密码。同样,你可以使用默认值,也可以输入自己的值。就像这样:
- 最后,系统会让你选择是否启用跨域。如果你想启用,输入 Y;如果不想,输入 N。就像这样:
- 输入你的选择后,系统会开始创建项目。等待片刻,项目就会创建完毕。就像这样:
项目结构
生成的项目结构如下:
-- -------------------- ---- ------- ------------- --- ---- - --- ------------ - - --- ---------- - --- ------- - - --- ---------- - --- ------- - - --- ---- - - - --- ------- - - - --- ---------- - - - --- -------- - - --- -------- - --- ------ --- ------- - --- ---- - --- -------- - --- ----------- - --- ----- - --- ------------- --- ----- - --- ------- --- ----- - --- ------------ - --- --------- - --- ------- - --- ------- --- ---- --- ------------ --- ---------- --- ------ --- ------------ --- --------- --- ---------
其中,app/ 文件夹包含了我们的后端逻辑,config/ 文件夹包含了我们的配置,logs/ 文件夹包含了日志,test/ 文件夹包含了测试代码。
启动项目
我们可以使用以下命令启动项目:
npm start
然后,打开浏览器并输入 http://localhost:3000/api
就可以访问我们的 API 了。
深入学习和指导
在这一节中,我们将对 generator-men-api 创建的项目进行深入讲解。我们将从以下几个方面进行讲解:
- 如何添加自定义的 API
- 如何添加自定义的 Model 和 Controller
- 如何添加自定义的 Middleware
- 如何添加自定义的路由
如何添加自定义的 API
如果你想在生成的项目中添加一些自定义的 API,可以按照以下步骤进行操作:
- 在
app/routes/api
文件夹中创建一个新的文件,例如books.js
,代码如下:
const express = require('express'); const router = express.Router(); router.get('/books', (req, res) => { // 你的逻辑代码 }); module.exports = router;
- 在
app/routes/api/index.js
中添加以下代码:
router.use(require('./books'));
这样,你就添加了一个名为 books 的路由,并在默认的路由中引入了这个路由。
在 books.js
文件中,你可以编写任何逻辑代码,例如调用 Model 或执行一些操作。注意,在这个文件中,req 和 res 的用法与 Express 中的 req 和 res 是一样的。
如何添加自定义的 Model 和 Controller
如果你想在生成的项目中添加一些自定义的 Model 和 Controller,可以按照以下步骤进行操作:
- 在
app/models
文件夹中创建一个新的文件,例如book.js
,代码如下:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ---------- - --- ----------------- ------ ------- ------- ------- ----- ------ --- -------------- - ---------------------- ------------
- 在
app/controllers
文件夹中创建一个新的文件,例如book.js
,代码如下:
-- -------------------- ---- ------- ----- ---- - -------------------------- -------------- - - ------ ----- ----- ---- -- - ----- ----- - ----- ------------ ---------------- -- ------- ----- ----- ---- -- - ----- ---- - --- --------------- ----- ------------ --------------- -- ----- ----- ----- ---- -- - ----- -- - -------------- ----- ---- - ----- ------------------ --------------- -- -------- ----- ----- ---- -- - ----- -- - -------------- ----- ---------------- ---- -- --- -------------------- - --
- 在
app/routes/api/books.js
中添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - ----------------- ----- -------------- - ---------------------------------- --------------- ---------------------- ---------------- ----------------------- ------------------ --------------------- --------------------- ------------------------ -------------- - -------
这样,你就添加了一个名为 book 的 Model 和其对应的 Controller,并在路由中引用了这个 Controller。
在 book.js
的 Controller 中,你可以编写任何业务逻辑,包括调用 Model 或执行一些操作。注意,在这个文件中,req 和 res 的用法与 Express 中的 req 和 res 是一样的。
如何添加自定义的 Middleware
在生成的项目中,如果你需要添加一些自定义的 Middleware,可以按照以下步骤进行操作:
- 在
app/middleware
文件夹中创建一个新的文件,例如logger.js
,代码如下:
module.exports = function (req, res, next) { console.log(`${req.method} ${req.url}`); next(); };
- 在需要使用的路由中添加以下代码:
const loggerMiddleware = require('../middleware/logger'); router.use(loggerMiddleware);
这样,你就添加了一个名为 logger 的 Middleware,并在路由中引用了这个 Middleware。
在 logger.js
文件中,你可以编写任何 Middleware 逻辑代码,在这个文件中,req 和 res 的用法与 Express 中的 req 和 res 是一样的。
如何添加自定义的路由
在生成的项目中,如果你需要添加一些自定义的路由,可以按照以下步骤进行操作:
- 在
app/routes
文件夹中创建一个新的文件,例如books.js
,代码如下:
const express = require('express'); const router = express.Router(); router.get('/books', (req, res) => { // 你的逻辑代码 }); module.exports = router;
- 在
app/routes/index.js
中添加以下代码:
router.use('/books', require('./books'));
这样,你就添加了一个名为 books 的路由,并在默认的路由中引入了这个路由。
在 books.js
文件中,你可以编写任何逻辑代码,例如调用 Model 或执行一些操作。注意,在这个文件中,req 和 res 的用法与 Express 中的 req 和 res 是一样的。
示例代码
以下是一个完整的示例代码,展示如何添加自定义的 API、Model、Controller、Middleware 和路由。
-- -------------------- ---- ------- -- ----------------------- ----- ---- - -------------------------- -------------- - - ------ ----- ----- ---- -- - ----- ----- - ----- ------------ ---------------- -- ------- ----- ----- ---- -- - ----- ---- - --- --------------- ----- ------------ --------------- -- ----- ----- ----- ---- -- - ----- -- - -------------- ----- ---- - ----- ------------------ --------------- -- ------- ----- ----- ---- -- - ----- -- - -------------- ----- ---- - ----- ------------------ ------------------- ----- ------------ --------------- -- -------- ----- ----- ---- -- - ----- -- - -------------- ----- ---------------- ---- -- --- -------------------- - -- -- ------------------ ----- -------- - -------------------- ----- ---------- - --- ----------------- ------ ------- ------- ------- ----- ------ --- -------------- - ---------------------- ------------ -- ------------------------ -------------- - -------- ----- ---- ----- - -------------------------- ------------- ------- -- -- ----------------------- ----- ------- - ------------------- ----- ------ - ----------------- ----- -------------- - ---------------------------------- --------------- ---------------------- ---------------- ----------------------- ------------------ --------------------- ------------------ ----------------------- --------------------- ------------------------ -------------- - ------- -- ------------------- ----- ------- - ------------------- ----- ------ - ----------------- ----- ---- - -------------------------- --------------- ----- ---- -- - ----------------- -- --- ---- ------ --- ------------------ ----- ----- ---- -- - ----- -- - -------------- ----- ---- - ----- ------------------ --------------- --- -------------- - ------- -- ------------------- ----- ------- - ------------------- ----- ------ - ----------------- ----------------------------- -------------------- -------------------- -------------- - -------
总结
在本文中,我们详细讲解了如何使用 generator-men-api 创建基于 Node.js、Express 和 MongoDB 的后端 API 项目,并深入讲解了如何添加自定义的 API、Model、Controller、Middleware 和路由。这些知识对于初学者和想要提高技能的开发者都非常有帮助。如果你遇到了困难或有疑问,可以关注我,我将持续分享前端开发经验和知识。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005642481e8991b448e151d