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

利用express从0到1搭建后端服务

目录

  • 步骤一:安装开发工具
  • 步骤二:安装插件
  • 步骤三:安装nodejs
  • 步骤四:搭建启动入口文件
  • 步骤五:启动服务器
  • 总结

在日常工作中,有很多重复和繁琐的事务是可以利用软件进行提效的。但每个行业又有自己的特点,很难选购一款完全符合自己需求的软件。利用现有的技术,结合自己的业务特点,独立架构一套属于自己的软件无疑是最佳的方案。

要想架构软件,就需要选择技术栈,选配必要的前后端技术。架构软件首先选择的是语言,我们本次的搭建过程是选择的javascript作为开发语言。因为javascript属于脚本语言,没有太多复杂的语法,而且编写马上就可以看到运行的结果,而且前后端都有优秀的框架。

我们本次架构前端的语言是javascript,选用vue3+tdesign作为前端框架。后端我们使用nodejs+express+mysql。有了这个基本的架构思路就可以开工干了,先看一下我们本次的架构图:
在这里插入图片描述

步骤一:安装开发工具

后端服务我们先安装vscode,用来我们后端代码的编写,下载地址

https://code.visualstudio.com/

打开页面后点击download for windows
在这里插入图片描述
下载到本地之后,点击安装包,双击安装
在这里插入图片描述
点击同意协议
在这里插入图片描述
保持默认也可以,勾选上创建桌面快捷方式也行,勾选之后你每次打开工具可以从桌面找到图标就可以双击打开
在这里插入图片描述
然后点击安装,等待进度条走完
在这里插入图片描述
在这里插入图片描述

步骤二:安装插件

默认空白安装后,我们需要一些插件来辅助我们的开发,点击侧边栏的extensions,输入Express Snippets,然后点击install来安装插件
在这里插入图片描述
插件安装好之后我们可以测试一下他的命令,现在你的硬盘里创建一个项目的文件夹,比如backend
在这里插入图片描述
然后打开我们的vscode,点击file->open folder
在这里插入图片描述
选择我们刚刚创建的文件夹,backend
在这里插入图片描述
一般express有一个启动的入口文件,我们点击创建文件的图标
在这里插入图片描述
输入app.js,启动文件就创建好了
在这里插入图片描述
我们不知道该写点啥代码,在光标的位置,输入app+tab键,他就帮我们生成了一个代码的模板
在这里插入图片描述
这个模板虽然有一定的作用,但是需要经过一定的改造才可以使用。

步骤三:安装nodejs

在express应用开发的过程中,我们需要安装很多第三方提供的包,就必须先安装Nodejs,然后使用npm命令来安装第三方包,nodejs下载地址:

https://nodejs.org/en

然后点击下载最新的版本
在这里插入图片描述
这里的LTS表示长期支持的意思,意味着你后续会基于该版本得到更新,因为开源软件一个是会改进功能,另外是有安全更新。功能改进意味着有长久的生命力,安全更新可以进行系统加固。

下载完成后双击我们的安装包
在这里插入图片描述
点击Next进行下一步的安装
在这里插入图片描述
勾选I accept复选框,同意用户协议
在这里插入图片描述
选择默认的安装路径,也可以自己修改
在这里插入图片描述
剩下就一路next直到安装完成
在这里插入图片描述
在这里插入图片描述
为了验证我们的开发环境是否搭建成功,可以按住键盘的win+R键,在弹出的窗口输入cmd
在这里插入图片描述
依次输入如下命令

node -v
npm  -v

在这里插入图片描述
能看到版本号,表示我们的开发环境搭建成功了

步骤四:搭建启动入口文件

我们在上边讲解了用插件去快捷的创建入口文件,但是他的代码不是太好使,我们需要自己写一下启动的代码。

首先要初始化一下项目的配置文件,在vscode里点击Terminal->New Terminal
在这里插入图片描述
在命令行窗口里输入如下命令

npm init

它会提示你各种信息,你一路按回车键,直到在根目录创建了一个package.json文件
在这里插入图片描述
这个就是我们工程的依赖文件,如果我们用npm install安装了各种包,都会记录到这个文件里,别人得到你的源码后,直接再执行一遍 npm install就把依赖环境搭建好了

我们要使用express框架,先需要安装它,在命令行里输入

npm install express

在这里插入图片描述
执行完毕后会在根目录多一个node_modules文件夹,里边就有了我们依赖的express框架
在这里插入图片描述
可以看到除了express还有很多其他的,因为依赖是层次展开的,需要一层层的都安装好,然后可以打开package.json里看到我们最新的依赖
在这里插入图片描述
在app.js里替换一下代码,贴入如下代码

// 引入express模块  
const express = require('express');  
const app = express();  
const PORT = process.env.PORT || 3000; // 设置端口号,环境变量PORT有值则使用,否则默认为3000  // 设置中间件,处理跨域请求(可选)  
app.use((req, res, next) => {  res.header("Access-Control-Allow-Origin", "*");  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");  next();  
});  // 路由示例:当访问根路径时返回"Hello World!"  
app.get('/', (req, res) => {  res.send('Hello World!');  
});  // 启动服务器  
app.listen(PORT, () => {  console.log(`Server is running on port ${PORT}`);  
});

步骤五:启动服务器

不像Java一样,还得打包部署到tomcat里,express直接用命令启动就可以,在命令行里输入

node app.js

命令行会打印服务器在3000端口启动成功
在这里插入图片描述
然后你在浏览器里输入http://localhost:3000,可以看到hello,world表示我们后端服务就搭建成功了
在这里插入图片描述

总结

我们本篇带着大家从0开始搭建了express的后端服务,涉及到开发工具的下载安装、开发环境的搭建以及启动服务器。有了这些基础知识,后续我们就可以按照自己的需要开发后端接口了,感兴趣的同学,自己搭建一下吧。

相关文章:

利用express从0到1搭建后端服务

目录 步骤一:安装开发工具步骤二:安装插件步骤三:安装nodejs步骤四:搭建启动入口文件步骤五:启动服务器总结 在日常工作中,有很多重复和繁琐的事务是可以利用软件进行提效的。但每个行业又有自己的特点&…...

如何在Ubuntu中查看编辑lvgl的demo和examples?

如何在Ubuntu中查看编辑lvgl的demo和examples? 如何在 Ubuntu系统中运行查看lvgl 1、拉取代码 在lvgl的github主页面有50多个仓库,找到lv_port_pc_eclipse这个仓库,点进去 拉取仓库代码和子仓库代码 仓库网址:https://github…...

深入了解 大语言模型(LLM)微调方法

引言 众所周知,大语言模型(LLM)正在飞速发展,各行业都有了自己的大模型。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。 那么&…...

C语言之快速排序

目录 一 简介 二 代码实现 快速排序基本原理: C语言实现快速排序的核心函数: 三 时空复杂度 A.时间复杂度 B.空间复杂度 C.总结: 一 简介 快速排序是一种高效的、基于分治策略的比较排序算法,由英国计算机科学家C.A.R. H…...

获取扇区航班数

1、Spark Streaming清洗服务,接收kafka中Topic为“task_ATC”中的数据,保存在MySQL中。 打开SpringBoot项目BigData-Etl-KongGuan 请认真阅读:在前面的“使用Spark清洗统计业务数据并保存到数据库中”任务阶段中应该已经完成了所有Topic的数…...

​【已解决】npm install​卡主不动的情况

使用 npm install 初始化前端项目时,会出现卡住不动的情况。原因是淘宝镜像源由原来的https://registry.npm.taobao.org 更换为下面这个: https://registry.npmmirror.com 直接在终端执行下面的指令即可: npm config set registry https://re…...

Golang协程详解

一.协程的引入 1.通过案例文章引入并发,协程概念 见:[go学习笔记.第十四章.协程和管道] 1.协程的引入,调度模型,协程资源竞争问题 通过上面文章可以总结出Go并发编程原理: 在一个处理进程中通过关键字 go 启用多个协程,然后在不同的协程中完成不同的子任…...

git:码云仓库提交以及Spring项目创建

git:码云仓库提交 1 前言 码云访问稳定性优于github,首先准备好码云的账户: 官网下载GIT,打开git bash: 查看当前用户的所有GIT仓库,需要查看全局的配置信息,使用如下命令: git …...

【Miniconda】基于conda避免运行多个PyTorch项目时发生版本冲突

【Miniconda】基于conda避免运行多个PyTorch项目时发生版本冲突 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到…...

【机器学习-02】矩阵基础运算---numpy操作

在机器学习-01中,我们介绍了关于机器学习的一般建模流程,并且在基本没有数学公式和代码的情况下,简单介绍了关于线性回归的一般实现形式。不过这只是在初学阶段、为了不增加基础概念理解难度所采取的方法,但所有的技术最终都是为了…...

《A Second-Order PHD Filter With Mean and Variance in Target Number》学习心得

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. 主要内容2. PHD、CPHD和SO-PHD之间的差别2.1 PHD2.2 CPHD2.3 SO-PHD2.4 关于“CPHD对每个可能的目标数量状态进行建模”3. PHD、CPHD和SO-PHD描述目标数量分布所用的参数3.1 PHD所用参数3.2 CPH…...

React 实现下拉刷新效果

简介 本文基于react实现下拉刷新效果,在下拉的时候会进入loading状态。 实现效果 效果如上图所示,在下拉到底部时候,会出现loading条,在处理完成后loading条消失。 具体代码 布局 & 逻辑 import {useRef, useState} from …...

使用endnote插入引用文献导致word英文和数字变成符号的解决方案

使用endnote插入引用文献导致word英文和数字变成符号的解决方案 如图使用endnote插入引用文献导致word英文和数字变成符号字体Wingdings Wingdings 是一个符号字体系列,它将许多字母渲染成各式各样的符号,用途十分广泛。 解决方法: 直接通过更…...

npm下载慢换国内镜像地址

1 设置淘宝镜像地址 npm config set registry http://registry.npm.taobao.org 2 查看当前下载地址 npm config get registry 3 其它镜像地址列表: 1. 官方镜像:https://registry.npmjs.org/ 2. 淘宝镜像:https://registry.npm.taobao.o…...

开源绘图工具 PlantUML 入门教程(常用于画类图、用例图、时序图等)

文章目录 一、类图二、用例图三、时序图 一、类图 类的UML图示 startuml skinparam classAttributeIconSize 0 class Dummy {-field1 : String#field2 : int~method1() : Stringmethod2() : void } enduml定义能见度(可访问性) startumlclass Dummy {-f…...

Ubuntu20下C/C++编程开启TCP KeepAlive

1、在linux下,测试tcp保活,可以使用tcp自带keepalive功能。 2、几个重要参数: tcp_keepalive_time:对端在指定时间内没有数据传输,则向对端发送一个keepalive packet,单位:秒 tcp_keep…...

前世档案(不用二叉树语法秒杀版c++)

网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。 现在我们把结论从左到右顺序…...

Java基础 - 9 - 集合进阶(二)

一. Collection的其他相关知识 1.1 可变参数 可变参数就是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型…参数名称; 可变参数的特点和好处 特点:可以不传数据给它;可以传一个或者同时传多个数据给…...

javaEE——线程的等待和结束

文章目录 Thread 类及常见方法启动一个线程中断一个线程变量型中断调用 interrupt() 方法来通知观察标志位是否被清除 等待一个线程获取当前线程引用休眠当前线程 线程的状态观察线程的所有状态观察 1: 关注 NEW 、 RUNNABLE 、 TERMINATED 状态的切换 多线程带来的风险为什么会…...

sqlplus设置提示符

作为DBA,需要管理好多数据库,经常会有一台服务器安装多个oracle实例的情况,为避免误操作实例,我们需要在执行sqkplus前,先通过$ echo $ORACLE_SID或 SQL>select name from v$database查看当前实例,这样难…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...

2.3 物理层设备

在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...