前端铺子-NodeJS后端:基于Node.js构建高效后端服务的探索与实践

一、引言

随着前端技术的快速发展,越来越多的开发者开始关注前后端分离的开发模式。前端铺子作为一个旨在服务前端开发者的开源项目,近期推出了基于Node.js的后端系统。该系统通过整合Node.jsNodemonMySQL等技术,为前端开发者提供了一个高并发易部署的后端解决方案。本文将对前端铺子后端系统进行详细介绍,并探讨其技术实现和优势。

 

图片

二、项目概述

前端铺子后端系统是一个基于Node.js的开源项目,旨在为前端开发者提供一个简单易用、性能优良的后端服务。项目使用Nodemon作为开发时的热更新工具,MySQL作为数据存储方案,目前已完成了登录、项目管理和文章管理等核心功能。此外,系统还提供了文件上传(基于七牛云)和百度统计API调用等扩展功能。该系统旨在降低前后端开发的耦合度,提高开发效率,为前端开发者提供更加灵活和便捷的后端支持。

项目说明

  1. 项目使用Nodejs + Nodemon + MySQL~

  2. 已完成接口 - 16个:

  • 登录 - login(1个接口)

  • 项目管理 - project(7个接口)

  • 文章管理 - blogs(7个接口)

  • 文件上传 - upload(1个接口,基于七牛云)

  • 百度统计Api - baiduApi(1个接口,调用第三方)

  1. 做后端是因为有很多很多小伙伴强烈的需求,索性:辞职做开源!

  2. 其他功能还在补充中,如果有其他需求也可以留言给我~

  3. 开源的初衷就是为了方便同行的小伙伴,还请各位多支持~

  4. 本人自知技术还处于底层,还是有很多需要学习的地方!

目录说明

├─bin              	// 入口文件夹
│	├─www.js		// 入口文件
│
├─src      			// 业务代码及其他
│	└─config		// 数据库文件夹
│		└─db		// 同上
│	└─controllers	// 接口的相关方法
│		└─blog		// 博客管理的相关方法(举例说明)
│
└─db				// 执行sql语句的封装文件夹
│	└─mysql.js		// sql语句的封装文件
│
├─model       		// 方法成功/失败的统一封装
│	└─responseModel	// 同上
│
├─routes       		// 接口路由管理
│	└─blog			// 同上(举例说明)
│
├─.gitignore		// git忽略文件
├─app.js			// 数据请求等全局处理的封装
├─package-lock.json	// 依赖
├─README.md			// 说明文档

部分截图

图片

 

图片

运行教程

  1. 安装Nodejs npm环境,安装MySQL

  2. 修改package.json下的main:bin/www.js

  3. 全局安装环境:npm install nodemon -D

  4. package.json下的scripts dev修改为:"nodemon bin/www.js"

  5. 全局安装mysql服务:npm install mysql (MySQL需要建表)

  6. 全局安装qiniu服务:npm install qiniu(七牛云上传)

  7. 全局安装request服务:npm install request -S(调用第三方接口)

  8. 启动:npm run dev

部署教程 · 宝塔

  1. 安装pm2并Nodejs npm环境

  2. 导入SQL文件

  3. 导入项目后,npm i安装

  4. 修改bin/www.js的端口,修改sec/congif/db.js的数据库名、用户名、密码

  5. 在“安全”中,放行你修改的端口

  6. 打开pm2管理器,添加项目

  7. 设置端口号(状态是绿色播放图标就ok,没有显示端口号的话肯定是项目启动失败了,建议重新走一遍流程)

  8. 浏览器输入 ip/域名:端口号 来访问node项目了

  9. 傻瓜式部署,按流程来没有任何问题;

三、技术实现

  1. Node.js框架

前端铺子后端系统采用Node.js作为后端开发框架。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,具有非阻塞I/O、事件驱动、单线程等特点,非常适合构建高并发的Web应用。通过Node.js,我们可以快速搭建起一个高效、稳定的后端服务。

  1. Nodemon工具

为了提高开发效率,前端铺子后端系统引入了Nodemon作为开发时的热更新工具。Nodemon可以监控文件系统的更改,并自动重启Node.js应用程序。这样,在开发过程中,我们无需手动重启服务器即可查看代码更改的效果,大大提高了开发效率。

  1. MySQL数据库

前端铺子后端系统使用MySQL作为数据存储方案。MySQL是一个开源的关系型数据库管理系统,具有高性能、稳定性和可扩展性等优点。通过MySQL,我们可以方便地存储和管理用户数据、项目信息、文章内容等核心数据。同时,MySQL还支持多种索引方式、事务处理等高级功能,可以满足复杂的数据查询和更新需求。

四、功能介绍

  1. 登录功能

前端铺子后端系统提供了登录接口,支持用户通过用户名和密码进行登录验证。登录成功后,系统会返回用户信息和令牌(Token),用于后续请求的身份验证和授权。

  1. 项目管理功能

项目管理功能是前端铺子后端系统的核心功能之一。系统提供了项目创建、查询、更新和删除等接口,支持前端开发者对项目进行全生命周期的管理。通过项目管理功能,开发者可以方便地创建新的项目、查看已有项目的详细信息、更新项目状态或删除不再需要的项目。

  1. 文章管理功能

文章管理功能允许前端开发者在系统中发布和管理文章。系统提供了文章创建、查询、更新和删除等接口,支持富文本编辑和标签管理等功能。通过文章管理功能,开发者可以轻松地发布技术文章、分享经验心得或记录学习笔记等。

  1. 文件上传功能(基于七牛云)

前端铺子后端系统还支持文件上传功能,基于七牛云提供的云存储服务实现。开发者可以将图片、文档等文件上传到七牛云服务器,并通过系统提供的接口获取文件的URL地址。这样,开发者就可以将文件嵌入到网页中或通过链接分享给他人。

  1. 百度统计API调用功能

为了方便开发者进行网站数据统计和分析,前端铺子后端系统还提供了百度统计API调用功能。通过调用百度统计API接口,开发者可以获取网站的访问量、用户行为等数据,并据此进行网站优化和改进。

图片

五、总结与展望

前端铺子后端系统是一个基于Node.js的开源后端服务,旨在为前端开发者提供一个简单易用、性能优良的后端支持。通过整合Node.js、Nodemon和MySQL等技术,该系统实现了登录、项目管理、文章管理等核心功能,并支持文件上传和百度统计API调用等扩展功能。未来,我们将继续完善和优化系统功能,提供更多实用的功能和工具,为前端开发者提供更加全面和高效的后端支持。同时,我们也欢迎广大开发者提出宝贵的意见和建议,共同推动前端铺子项目的发展和进步。

项目gitee地址:

https://gitee.com/kevin_chou/qdpz-nodejs

项目文档地址:

https://qdpz.zhoukaiwen.com/guide/nodejs/

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python-VBA函数之旅-tuple函数

目录 一、tuple函数的常见应用场景 二、tuple函数使用注意事项 三、如何用好tuple函数? 1、tuple函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页: https://myelsa1024.blog.csdn.net/ 一、tu…

钡铼技术BL205模块分布式IO集成应用风电场状态监测

在风力发电这一绿色能源领域,高效、精确的状态监测对于提升风电场运维效率、保障设备安全运行至关重要。随着工业4.0和数字化转型浪潮的推进,传统的监测方式已难以满足日益增长的数据处理与分析需求。钡铼技术BL205模块的出现,为风电场状态监…

[图解]实现领域驱动设计译文暴露的问题04

0 00:00:00,960 --> 00:00:03,020 今天我们继续说一下 1 00:00:03,460 --> 00:00:05,350 实现领域驱动设计 2 00:00:05,630 --> 00:00:08,120 译文里面暴露的问题 3 00:00:10,630 --> 00:00:14,740 前面三个视频,我们提到了第①句 4 00:00:15,550 -…

【算法提升之赛事推荐】蓝桥杯没拿奖?你还有这个比赛的羊毛可以薅

目录 蓝桥算法双周赛-赛事介绍([官方连接](https://www.lanqiao.cn/oj-contest/))赛事奖励赛事概览快速上手划重点!1. 赛题解析及答疑2. 排行榜3. 基础体验 注意事项 蓝桥算法双周赛-赛事介绍(官方连接) 为了激励同学们…

Django自定义封装Response

Django自定义封装Response 目录 Django自定义封装Response定义Response类视图层示例 定义Response类 # utils/common_response.py from rest_framework.response import Response# 继承DRF的Response并重写__init__ class APIResponse(Response):def __init__(self, code100, …

排序-计数排序(Counting Sort)

计数排序(Counting Sort)是一种非比较排序算法,特别适用于一定范围内的整数排序。它的核心思想是统计每个值的出现次数,然后根据这些计数将每个元素放到其正确的位置上。计数排序的时间复杂度为O(nk),其中n是数组长度&…

ChatGPT4o免费体验?OpenAI 又在深夜放大招了!

👩🏽‍💻个人主页:阿木木AEcru 🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》 💹每一次技术突破,都是对自我能力的挑战和超越。 目录 一、GPT4o是什么?二、官网…

LeetCode2215找出两数组的不同

题目描述 给你两个下标从 0 开始的整数数组 nums1 和 nums2 ,请你返回一个长度为 2 的列表 answer ,其中:answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整数组成的列表。answer[1] 是 nums2 中所有 不 存在于 nums1 中的 不同 整数组…

正念冥想训练内容有哪些?流静冥想

正念冥想训练内容有哪些? “我做不到感恩,总觉得满世界都是欠我的。”同学A这样说。看得出来她的无奈、无力以及无头绪感。 “我无法对父母做出感恩的祝福,从他们那里我感受不到爱,感受不到关怀,体验不到感恩。”同学…

【Java】IDEA自动生成类图和时序图

【Java】IDEA自动生成类图和时序图 idea 的强大之处在于此,它包含了很多小插件,我们不需要再次下载相关插件,只需要在idea中小小的设置一下就可以了,下面是设置方法,我用的是idea2020版本 打开设置File -> Settings->Diagr…

vue3 中 使用 antd中的select 组件的带搜索框 展开后可对选项进行筛选搜索功能

鼠标进入以后下拉显示&#xff1a; 输入字符串以后&#xff1a; 可以看出对数据进行了筛选。 具体代码&#xff1a; 结构上&#xff1a;<a-selectv-model:value"formState.formFlow"show-searchallowClearplaceholder"输入选择流程":options"op…

React Native 之 开发环境搭建(一)

1. 安装Node.js&#xff1a; Node.js是React Native开发的基础&#xff0c;因此首先需要安装Node.js。强烈建议始终选择 Node 当前的 LTS &#xff08;长期维护&#xff09;版本&#xff0c;一般是偶数版本&#xff0c;不要选择偏实验性质的奇数版本。 如果你希望更方便地管理…

【数据结构】数组循环队列的实现

队列&#xff08;Queue&#xff09;是一种特殊的线性数据结构&#xff0c;它遵循FIFO&#xff08;First In First Out&#xff0c;先入先出&#xff09;的原则。队列只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff08;rear&#…

C++11 线程池:轻量级高并发解决方案

C11 线程池&#xff1a;轻量级高并发解决方案 线程池&#xff08;Thread Pool&#xff09;是一种线程管理的机制&#xff0c;它包含了多个预先创建的线程&#xff0c;用于执行多个任务&#xff0c;这些任务被放入任务队列中等待执行。 满足我们的生产者和消费者模型。 线程…

java面试题:判断字符串包含字母、数字、空格、符号的数量

在Java中&#xff0c;你可以使用正则表达式来检查字符串中包含多少个字母、数字、空格和符号。也可以使用基础api来实现业务逻辑&#xff0c;方法如下&#xff1a; 1 使用Character类的静态方法 以下代码定义了一个countCharacters方法&#xff0c;它遍历字符串中的每个字符&a…

戒烟网站|基于SSM+vue的戒烟网站系统的设计与实现(源码+数据库+文档)

戒烟网站 目录 基于SSM&#xff0b;vue的戒烟网站系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1网站功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主…

REACT 在组件之间共享状态

有时&#xff0c;您希望两个组件的状态始终一起变化。要做到这一点&#xff0c;请从他们俩身上删除状态&#xff0c;将其移动到他们最近的共同父级&#xff0c;然后通过道具将其传递给他们。这被称为提升状态&#xff0c;这是编写 React 代码时最常见的事情之一。 举例提升状态…

从ROS到数据库:用Python将ROS话题消息保存到数据库

观前提醒&#xff1a;本博客介绍如何使用Python订阅ROS话题,并将接收到的消息保存到SQL数据库中,包括MySQL和SQL Server两种情况。 使用Python订阅ROS话题并将消息保存至MySQL数据库 下面我们将详细介绍如何使用Python订阅ROS话题&#xff0c;并将接收的数据保存到MySQL数据库…

Postman基础功能-Collection集合和批量运行

一、Collection&#xff08;集合&#xff09;介绍 当我们对一个或多个系统中的很多接口用例进行维护时&#xff0c;首先想到的就是对接口用例进行分类管理&#xff0c;同时还希望对这批接口用例做回归测试。 在 Postman 中也提供了这样一个功能&#xff0c;就是 Collec…

【网站项目】SpringBoot781乐乐农产品销售系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…