【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (二):项目文件夹架构及路由的设置
本项目旨在学习如何快速使用 nodejs 开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师)
由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序(并非循序渐进的教学文档)。建议配合项目源码node-mongodb-template 。
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (一):项目简介及安装依赖
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (二):项目文件夹架构及路由的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (三):Cors的设置及.env文件的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (四):状态码的使用
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (五):POST上传文件的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (六):token的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (七):MongoDB的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (八):API说明(暂时完结,后续考虑将在线版mongoDB变为本地版)
项目文件的架构
通常文件架构是在开发过程中,逐步完善的,但是也可以直接确定架构后,按照模版的进行开发。
-** 表示文件;**表示文件夹
这里仅展示手动创建且会修改的文件及文件夹
项目文件夹(根目录)
-package.json 配置文件 pnpm i 会自动生成
-gitignore git操作会忽略的文件
-.env 环境变量的配置 结合dotenv依赖使用
-app.js 全局变量、路由的配置等
-server.js 启动文件 常规启动 终端node server.js
uploads 文件夹 上传文件的存储位置
-**.jpeg
api api相关代码文件夹
models 数据表的定义
-product.js
-order.js
-user.js
routers 路由 api请求响应
-products.js
-orders.js
-user.js
middleware 中间件
-check-auth.js
controllers 路由 api请求响应的回调
-products.js
-orders.js
-user.js
这里需要说明的是
controllers文件夹下的内容是从routers中提取出来的,目的是为了代码的可读性。
middleware中会放入多处经常需要使用的中间件。
路由的设置
以 localhost:3000/products 为例,新建文件夹routers, 然后在文件夹中新建文件products.js
//products.js
const express = require('express');
const router= express.Router();
//注意,这里使用的是 /
router.get('/',(req,res,next) => {
});
router.get('/:productId',(req,res,next) => {
});
//暴露
module.exports = router;
在文件app.js中引用该文件。
const express = require('express');;
const app = express();
//引用并使用products
const productsRoutes = require('./api/routers/products');
//注意这里是/products,此时如果需要查看productsAPI就需要访问地址localhost:3000/products/
app.use('/products',productsRoutes);
module.exports = app;