利用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的后端服务,涉及到开发工具的下载安装、开发环境的搭建以及启动服务器。有了这些基础知识,后续我们就可以按照自己的需要开发后端接口了,感兴趣的同学,自己搭建一下吧。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【消息队列开发】 实现MemoryDataCenter类——管理内存数据

文章目录 🍃前言🌴数据格式的准备🌲内存操作🚩对于交换机🚩对于队列🚩对于绑定🚩对于单个消息🚩对于队列与消息链表🚩对于未确认消息🚩从硬盘上读取数据 ⭕总…

Java -- 异常

异常概念 异常是程序在运行期间发生的不正常的事件, 它会打断指令的正常执行流程.   设计良好的程序应该在异常发生时提供处理这些不正常事件的方法, 使程序不会因为异常的发生而阻断或产生不可预见的结果.    Java语言使用异常处理机制为程序提供了异常处理的能力. 异常分…

无线局域网——wlan

目录 一.wlan的含义和发展 二.wlan技术带来的挑战 1.企业办公场景多样 2.位置速度的要求 3.安全的要求 4.规范的挑战 三.家庭和企业不同的部署需求 1.胖AP模式组网 2.AC瘦AP模式组网 3.组网模式的不同 四.三层隧道转发实验 1.拓扑 2.AP上线 核心交换机vlan ​编辑…

LGB2028 反向输出一个三位数

(LG是洛谷(洛谷)的意思) 题目链接:B2028 题目描述 将一个三位数反向输出,例如输入 358,反向输出 853。 输入格式 一个三位数 n。 输出格式 反向输出 n。 输入输出样例 输入 #1 100 输…

HashMap底层是如何实现的?

1、典型回答 不同的JDK 版本,HashMap 的底层实现是不一样的,总体来说:在JDK 1.8 之前(不包含JDK 1.8),HashMap 使用的是数组 链表实现的,而JDK 1.8之后(包含JDK 1.8)使用的是数组 链表或红黑树实现的 HashMap 在JD…

CTFHUB-web-信息泄漏

题目所在位置:技能树->web->信息泄漏 目录遍历 打开题目,我们进入的是这个页面 翻译过来就是 得到的信息就是:flag要在这些目录里面寻找,我们直接一个一个点开查看就行 发现得到一个flag.txt,点击打开得到flag …

计算机组成原理 第五章(计算机的运算方法)—第六节(算数逻辑单元)

写在前面: 本系列笔记主要以《计算机组成原理(唐朔飞)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的…

upload-labs通关方式

pass-1 通过弹窗可推断此关卡的语言大概率为js,因此得出两种解决办法 方法一 浏览器禁用js 关闭后就逃出了js的验证就可以正常php文件 上传成功后打开图片链接根据你写的一句话木马执行它,我这里采用phpinfo() 方法二 在控制台…

第八阶段:uni-app小程序 --首页开发(2)

一:分析页面布局 1.1: 功能 搜索框: 轮播图: 分类的导航区: 楼层区: 二: 利用命令创建home分支 git branch git checkout -b home git branch 三: 配置网络请求(main.js 入口函数&#x…

TCP多线程模型、IO模型(select、poll、epoll)

我要成为嵌入式高手之3月11日Linux高编第十九天!! ———————————————————————————— TCP并发模型 一、TCP多线程模型: 缺点:创建线程会带来资源开销,能够现的并发量比较有限 二、IO模型&…

科研绘图二:箱线图(抖动散点)

R语言绘图系列—箱线图抖动散点 (二): 科研绘图一:箱线图(抖动散点) 文章目录 R语言绘图系列---箱线图抖动散点(二): 科研绘图一:箱线图(抖动散点) 前言一、…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Web)下篇

onRequestSelected onRequestSelected(callback: () > void) 当Web组件获得焦点时触发该回调。 示例: // xxx.ets import web_webview from ohos.web.webviewEntry Component struct WebComponent {controller: web_webview.WebviewController new web_webv…

蓝桥集训之糖果

蓝桥集训之糖果 核心思想:dfs 剪枝 重复覆盖问题 暴搜 直到所有列都覆盖优化: 1.迭代加深 答案从1开始 2.逻辑简化 每次从可选行数最少得一列开始 3.可行性剪枝 添加估值函数h(),表示至少还需要选几行 与剩余行数的大小比较 4.**位运算 **将每包糖果…

wsl ubuntu 安装cuda nvcc环境

wsl ubuntu 安装cuda环境: CUDA Toolkit 11.6 Downloads | NVIDIA DeveloperDownload CUDA Toolkit 11.6 for Linux and Windows operating systems.https://developer.nvidia.com/cuda-11-6-0-download-archive?target_osLinux&target_archx86_64&Distri…

22-分支和循环语句_while语句(下)(初阶)

该代码输出什么&#xff1f; int main() {char ch \0;while ((ch getchar()) ! EOF){if (ch < 0 || ch>9){continue;}putchar(ch);}return 0; } 结果&#xff1a;该代码只打印数字字符 附&#xff1a;ASCII码表

C语言项目:数组与函数实践:扫雷游戏

目录 目录&#xff1a; 1.扫雷游戏分析与设计 1.1扫雷游戏的功能说明&#xff1a; 1.1.1使用控制台实现经典扫雷的游戏 1.1.2游戏可以通过菜单实现继续玩或者退出游戏 1.1.3扫雷棋盘是9*9的格子 1.1.4默认随机布置10个雷 1.1.5 可以排查雷 2.扫雷游戏的代码实现 1.遇到的问题…

【PyTorch】进阶学习:一文详细介绍 load_state_dict() 的应用场景、实战代码示例

【PyTorch】进阶学习&#xff1a;一文详细介绍 load_state_dict() 的应用场景、实战代码示例 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入…

特殊文件——属性文件、XML文件

目录 特殊文件 ——属性文件、XML文件 特殊文件的作用 需要掌握的知识点 Properties文件 ​编辑 构造器与方法​编辑 使用Properties 把键值对数据写出到属性文件中 ​编辑 XML文件​编辑 XML文件的作用和应用场景 解析XML文件 使用Dom4J框架解析出XML文件——下载…

windows使用nvm对node进行版本管理切换

在使用之前各位务必卸载掉自己安装过的nvm或者node版本包括环境变量之类的&#xff0c;要保证自己的电脑完全没有node环境&#xff0c;下面这些配置会自动配置node环境和安装node 参考视频 https://github.com/coreybutler/nvm-windows 访问以上链接到github去下载 点击release…

matlab simulink 一阶倒立摆LQR控制

1、内容简介 略 80-可以交流、咨询、答疑 一阶倒立摆LQR控制 2、内容说明 略 一级倒立摆系统的数学模型 系统的组成系统由小 车、小球和轻质杆组成。 倒摆通过转动关节安装在 驱动小车上&#xff0c;杆子的一端 固定在小车上&#xff0c;另一端可 以自由的左右倒下。通过 …