当前位置: 首页 > news >正文

后端Node学习项目-项目基础搭建

前言

各位好,我是前端SkyRain。最近为了响应公司号召,开始对后端知识的学习,作为纯粹小白,记录下每一步的操作流程。
项目仓库:https://gitee.com/sky-rain-drht/drht-node
因为写了文档,代码里注释不是很多,可以结合理解

初始化文件夹

创建文件夹

  • 在合适的位置创建一个文件夹,作为项目代码本地仓库

node初始化

执行命令
npm init -y
执行结果

在这里插入图片描述

Git初始化

执行命令
git init
执行结果

在这里插入图片描述

安装依赖

执行命令
yarn add ip 
yarn add koa 
yarn add koa-bodyparser
yarn add koa-router
yarn add mysql2
yarn add nodemon
yarn add sequelize
依赖说明
ip

用于获取服务器地址信息

koa

node的后端框架之一

koa-bodyparser

用于解析接口请求传递的参数

koa-router

与koa框架配合的路由库

mysql2

mysql数据库

nodemon

用来启动node服务

sequelize

mysql数据的关系映射库

启动服务配置

配置文件

为了保持未来的配置内容进行扩展,所以各自定义后导出

创建配置文件夹
  • 根目录下创建config文件夹
  • 在config文件夹下创建index.js
创建启动配置

config/index.js

const ip = require('ip');
// 运行配置
const serverSetting = {ipAddress: ip.address(), // 服务器ipport: 3000, // 服务器端口proxy: 'api' // 代理名称
}
module.exports = {serverSetting
}

启动类文件

创建启动类文件

app.js

const Koa = require('koa');
const { serverSetting } = require('./config');const app = new Koa();app.listen(serverSetting.port, () => {console.log(`server is running at http://${serverSetting.ipAddress}:${serverSetting.port}/${serverSetting.proxy}`)
})
创建启动命令

在package.json中创建启动命令

"scripts": {"dev": "nodemon app.js","test": "echo \"Error: no test specified\" && exit 1"
},

至此,可以运行命令看看服务能不能跑起来!

数据库配置

数据库信息配置

config/index.js

// 数据库配置
const dbSetting = {host: 'localhost', // 数据库ipport: 3306, // 数据库端口username: 'root', // 数据库用户名password: 'skyrain', // 数据库密码database: 'drht' // 数据库名称
}
module.exports = {...,dbSetting
}

数据库连接

创建连接文件
  • 在根目录下创建models文件夹
  • 在models文件夹下创建index.js
连接信息内容

models/index.js

const { Sequelize } = require('sequelize');
const { dbSetting } = require('../config/index')const sequelize = new Sequelize(dbSetting.database,dbSetting.username,dbSetting.password,{host: dbSetting.host,port: dbSetting.port,dialect: 'mysql',logging: false,timezone: '+08:00',pool: {max: 5, // 连接池最大连接数量min: 0,idle: 10000, // 如果一个线程在10秒内没有被使用过就释放掉},define: {timestamps: true, // 自动带上更新时间和修改时间freezeTableName: true   // 冻结表名,否则同步时会自动加s}}
)
sequelize.sync({force: false
})
// // 测试是否连接成功
// sequelize
//   .authenticate()
//   .then(() => {
//     console.log('数据库连接成功');
//   })
//   .catch(err => {
//     console.log('数据库连接失败', err);
//   })
module.exports = { db: sequelize }

相关文章:

后端Node学习项目-项目基础搭建

前言 各位好,我是前端SkyRain。最近为了响应公司号召,开始对后端知识的学习,作为纯粹小白,记录下每一步的操作流程。 项目仓库:https://gitee.com/sky-rain-drht/drht-node 因为写了文档,代码里注释不是很…...

Python | Leetcode Python题解之第538题把二叉搜索树转换为累加树

题目: 题解: class Solution:def convertBST(self, root: TreeNode) -> TreeNode:def getSuccessor(node: TreeNode) -> TreeNode:succ node.rightwhile succ.left and succ.left ! node:succ succ.leftreturn succtotal 0node rootwhile nod…...

【ZeroMQ 】ZeroMQ中inproc优势有哪些?与其它传输协议有哪些不同?

inproc 是 ZeroMQ 提供的一种传输协议,用于在同一进程内的不同线程之间进行高效的通信。与其他传输协议(如 tcp、ipc 等)不同,inproc 专门针对线程间通信进行了优化,具有极低的延迟和开销。以下是 inproc 的底层原理和…...

spark的学习-03

RDD的创建的两种方式: 方式一:并行化一个已存在的集合 方法:parallelize 并行的意思 将一个集合转换为RDD 方式二:读取外部共享存储系统 方法:textFile、wholeTextFile、newAPIHadoopRDD等 读取外部存储系统的数…...

一文了解Android SELinux

在Android系统中,SELinux(Security-Enhanced Linux)是一个增强的安全机制,用于对系统进行强制访问控制(Mandatory Access Control,MAC)。它限制了应用程序和进程的访问权限,提供了更…...

数据血缘追踪是如何在ETL过程中发挥作用?

在大数据环境下,数据血缘追踪具有重要意义,它能够帮助用户了解数据的派生关系、变换过程和使用情况,进而提高数据的可信度和可操作性。通过数据血缘追踪,ETL用户可以准确追溯数据的来源,快速排查数据异常和问题。 一、…...

跟我学C++中级篇——生产中如何调试程序

一、程序的BUG和异常 程序不是发布到生产环境就万事大吉了。没有人敢保证自己写的代码没有BUG,放心,说这种话的人,基本可以断定是小白。如果在开发阶段出现问题,还是比较好解决的,但是如果真到了生产上,可…...

Python爬虫实战 | 爬取网易云音乐热歌榜单

网易云音乐热歌榜单爬虫实战 环境准备 Python 3.xrequests 库BeautifulSoup 库 安装依赖 pip install requests beautifulsoup4代码 import requests from bs4 import BeautifulSoupdef get_cloud_music_hot_songs():url "http://music.163.com/#/discover/playlist…...

apk因检测是否使用代理无法抓包绕过方式

最近学习了如何在模拟器上抓取APP的包,APP防恶意行为的措施可分为三类: (1)反模拟器调试 (2)反代理 (3)反证书检验 第一种情况: 有的app检验是否使用系统代理&#xff0c…...

DevOps业务价值流:架构设计最佳实践

系统设计阶段作为需求与研发之间的桥梁,在需求设计阶段的原型设计评审环节,尽管项目组人员可能未完全到齐,但关键角色必须到位,包括技术组长和测试组长。这一安排旨在同步推进两项核心任务:一是完成系统的架构设计&…...

计算机网络——SDN

分布式控制路由 集中式控制路由...

开源数据库 - mysql - innodb源码阅读 - master线程(一)

master struct /** The master thread controlling the server. */void srv_master_thread() {DBUG_TRACE;srv_slot_t *slot; // 槽位THD *thd create_internal_thd(); // 创建内部线程ut_ad(!srv_read_only_mode); //断言 srv_read_only_mode 为 falsesrv_main_thread_proce…...

vscode ssh连接autodl失败

autodl服务器已开启,vscode弹窗显示连接失败 0. 检查状态 这里的端口和主机根据自己的连接更改 ssh -p 52165 rootregion-45.autodl.pro1. 修改config权限 按返回的路径找到config文件 右键--属性--安全--高级--禁用继承--从此对象中删除所有已继承的权限--添加…...

文件系统和日志管理 附实验:远程访问第一台虚拟机日志

文件系统和日志管理 文件系统:文件系统提供了一个接口,用户用来访问硬件设备(硬盘)。 硬件设备上对文件的管理 文件存储在硬盘上,硬盘最小的存储单位是512字节,扇区。 文件在硬盘上的最小存储单位&…...

云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO

知孤云出岫-CSDN博客 目录 腾讯云双11活动介绍 一.双十一活动入口 二.活动亮点 (一)双十一上云拼团Go (二)省钱攻略 (三)上云,多类型服务器供您选择 三.会员双十一冲榜活动 (一)活动内容 &#x…...

【VScode】VScode内的ChatGPT插件——CodeMoss全解析与实用教程

在当今快速发展的编程世界中,开发者们面临着越来越多的挑战。如何提高编程效率,如何快速获取解决方案,成为了每位开发者心中的疑问。今天,我们将深入探讨一款颠覆传统编程体验的插件——CodeMoss,它将ChatGPT的强大功能…...

水库大坝安全监测预警方法

一、监测目标 为了确保水库大坝的结构安全性和运行稳定性,我们需要采取一系列措施来预防和减少因自然灾害或其他潜在因素所引发的灾害损失。这不仅有助于保障广大人民群众的生命财产安全,还能确保水资源的合理利用和可持续发展。通过加强大坝的监测和维护…...

深度学习:微调(Fine-tuning)详解

微调(Fine-tuning)详解 微调(Fine-tuning)是机器学习中的一个重要概念,特别是在深度学习和自然语言处理(NLP)领域。该过程涉及调整预训练模型的参数,以适应特定的任务或数据集。以下…...

qt QWebSocketServer详解

1、概述 QWebSocketServer 是 Qt 框架中用于处理 WebSocket 服务器端的类。它允许开发者创建 WebSocket 服务器,接受客户端的连接,并与之进行双向通信。WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议,它使得客户端和服务器之间的数…...

【数据结构】线性表——链表

写在前面 本篇笔记记录线性表——链表的主要形式,虽然链表有8种形式,但是只要精通笔记中编写的两种,即可触类旁通。 文章目录 写在前面一、链表的概念及结构二、链表的分类三、无头单向非循环链表3.1、链表的实现3.1.1、链表的结构体定义3.1…...

YOLO模型如何训练救生衣检测数据集深度学习如何训练救生衣检测数据集

救生衣检测模型YOLO8-300n 提供训练好的模型文件(pt格式)、过程文件和验证图片,带对应的训练数据集10000张 1 111一、救生衣检测模型(YOLOv8-300n)完整方案1. 模型与数据集信息项目详情模型版本YOLOv8n(300…...

从Struts2漏洞看Java Web安全:一个OGNL表达式注入引发的十年“血案”

OGNL表达式注入:Struts2框架安全漏洞的十年演进与启示 2006年,当Struts2作为Struts框架的下一代产品首次亮相时,开发者社区对其寄予厚望。这个基于MVC架构的Java Web框架承诺提供更简洁的代码结构和更强大的功能扩展性。然而,很少…...

ExploitDB二进制漏洞库使用教程:快速查找和利用漏洞的简单方法

ExploitDB二进制漏洞库使用教程:快速查找和利用漏洞的简单方法 【免费下载链接】exploitdb-bin-sploits The legacy Exploit Database repository - New repo located at https://gitlab.com/exploit-database/exploitdb-bin-sploits 项目地址: https://gitcode.c…...

OmenSuperHub:让你的惠普OMEN游戏本性能全开,告别官方臃肿软件

OmenSuperHub:让你的惠普OMEN游戏本性能全开,告别官方臃肿软件 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为惠普OMEN游戏…...

ContextMenuManager:5分钟掌握Windows右键菜单管理的终极免费方案

ContextMenuManager:5分钟掌握Windows右键菜单管理的终极免费方案 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否厌倦了每次右键点击文件时&a…...

Trae日志占用很大解决方法(Windows)Trae日志占用、Trae logs删除、Trae缓存清理、Trae占用C盘、Trae AppData 清理

Trae日志占用很大解决方法(Windows) 关键词:Trae日志占用、Trae logs删除、Trae缓存清理、Trae占用C盘、Trae AppData 清理最近清理电脑磁盘时,发现 C 盘莫名其妙少了十几个 G。作为长期写代码的人,我第一反应就是&…...

Thanos剪枝算法:高效压缩大型语言模型的技术解析

1. 项目概述:Thanos剪枝算法解析在深度学习领域,大型语言模型(LLM)的参数量已突破千亿级别,这对计算资源和内存提出了极高要求。模型剪枝技术通过移除神经网络中的冗余连接,能在保持模型性能的同时显著降低…...

【免费下载】 探索语音合成新境界:so-vits-svc-4.1-Stable 资源文件推荐

探索语音合成新境界:so-vits-svc-4.1-Stable 资源文件推荐 【下载地址】so-vits-svc-4.1-Stable资源文件下载 本仓库提供 so-vits-svc-4.1-Stable 资源文件的下载。该资源文件是一个稳定版本的 so-vits-svc 模型,适用于语音合成和相关应用 项目地址: h…...

【BUUCTF】【WEB】ReadlezPHP

考点:打开题目,发现页面有点阴森:右键没有任何反应,那就右上角三个点:更多工具->开发者工具OK没有任何线索,那就用bp看看。拉倒最下面,发现右下角一个文件./time.php?source这可能是一个线索…...

支付系统架构设计:从交易核心到资金核算的稳定性实践

1. 支付系统总览:从业务到资金的桥梁但凡涉及在线交易的公司,支付系统都是其技术架构中当之无愧的“心脏”。它远不止是调用一个第三方支付接口那么简单,而是一套连接用户、业务、资金渠道和内部账务的复杂工程体系。一个设计得当的支付系统&…...