【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (二):项目文件夹架构及路由的设置

news/2024/10/24 10:06:21/文章来源:https://www.cnblogs.com/sitarblogs/p/18498924

本项目旨在学习如何快速使用 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.jsuploads							文件夹 上传文件的存储位置-**.jpegapi									api相关代码文件夹models						数据表的定义-product.js		-order.js-user.jsrouters						路由 api请求响应-products.js-orders.js-user.jsmiddleware				中间件-check-auth.jscontrollers				路由 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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/821056.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PbootCMS登录后无法访问特定页面,提示404错误或权限不足怎么办

问题描述:登录后无法访问特定页面,提示404错误或权限不足。 解决方案:检查URL:确保访问的URL正确无误。 检查权限设置:确保当前用户具有访问该页面的权限。 检查路由配置:确保PBootCMS的路由配置正确。 清除缓存:清除浏览器缓存和PBootCMS的缓存,重新加载页面。 检查插…

网站首页后台怎么修改?

1. 登录后台管理系统打开浏览器,访问你的网站后台管理系统的登录页面。 输入当前的用户名和密码,登录到后台管理系统。2. 导航到首页管理登录后,进入后台管理系统的主界面。 在顶部菜单或左侧导航栏中,找到并点击“首页管理”、“页面管理”或“内容管理”等相关选项。3. 选…

安装宝塔Linux面板全流程 新手一看就会

1. 使用ssh远程终端工具,如堡塔多机管理-终端连接至Linux服务器 2. 使用root账户执行进行安装(大约2分钟左右) 3. 安装完成根据获取的账户密码进行访问宝塔面板扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Java…

PbootCMS自带百度编辑器插入视频不显示怎么办?

PbootCMS 自带的百度编辑器(UEditor)在插入视频时有时会出现不显示的问题。这可能是由于多种原因造成的,包括视频格式不支持、路径错误、配置问题等。以下是一些常见的解决方法: 解决方法 1. 检查视频格式支持的视频格式:UEditor 支持的视频格式包括:mp4, flv, webm 等。…

宝塔linux面板安装(宝塔面板linux如何搭建网站)

宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得全球百万用户认可安装。 Linux面板(Centos/OpenCloud/A…

leetcode-197-上升的温度

链接:197. 上升的温度 - 力扣(LeetCode) 前提条件: 表: Weather +---------------+---------+ | Column Name | Type | +---------------+---------+ | id | int | | recordDate | date | | temperature | int | +---------------+--------…

开源监控系统Prometheus的前世今生

开源监控系统Prometheus的前世今生 http://www.uml.org.cn/itil/202012101.asp 出处:http://www.cnblogs.com/lightsong/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

YOLOv5-6.0训练出错及解决方法(RuntimeError)

知识经验分享——YOLOv5-6.0训练出错及解决方法(RuntimeError)一、问题bug不知道小伙伴们在训练YOLOv5-6.0或者其他版本有没有遇到以下问题: RuntimeError: result type Float cant be cast to the desired output type long int 二、解决方法 步骤1:打开utils/loss.py文件…

mysql异常Lock wait timeout exceeded问题分析

在代码debug模式中,调试业务流程时遇到java.lang.Exception: ### Error updating database. Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction 异常; 原因分析: 执行update sql语句时发生 "LOCK WAIT”事务. 具体来说就是:…

【加密系统】华企盾DSC服务台提示:请升级服务器,否则可能导致客户端退回到旧服务器的版本

华企盾DSC服务台提示:请升级服务器,否则可能导致客户端退回到旧服务器的版本 产生的原因:控制台版本比服务器高导致控制台出现报错解决方案方法:将控制台回退到原来的使用版本,在控制台负载均衡查看连接该服务器各个控制台版本。控制台版本在“关于”中查看,将控制台版本…

设计测试用例编写技巧_

一、查看用例的模板二、用例的要素讲解 .编写用例的要素? 用例编号,用例标题,前置条件,测试步骤,预期结果,优先级 (必写) 系统名称、模块名称、用例创建时间,实际结果,用例类型,执行时间,执行状态等(非必填项) 三、详解测试用例要素 (一)用例编号 可以称为:用…

视觉人体动作行为识别系统

视觉人体动作行为识别系统基于AI视觉智能分析算法,视觉人体动作行为识别系统利用监控摄像头捕捉到的视频数据进行实时分析。通过对工人的操作行为进行识别,系统能够准确判断工人在生产过程中是否存在违规行为或操作错误等情况。例如,系统可以识别工人是否按照正确的顺序执行…