利用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://www.mzph.cn/news/750057.shtml

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

相关文章

【AI】实现在本地Mac,Windows和Mobile上运行Llama2模型

【AI】实现在本地Mac,Windows和Mobile上运行Llama2模型 目录 【AI】实现在本地Mac,Windows和Mobile上运行Llama2模型**Llama 2模型是什么?****技术规格和能力****Llama 2中的专门模型****在人工智能开发中的意义****如何在本地使用Llama 2运行Llama.cpp****Llama.cpp的设置*…

【Redis】基于Redis实现查询缓存

1.缓存更新策略 主动更新用的最多。  主动更新一般是由缓存的调用者,在更新数据库的同时,更新缓存。 操作缓存和数据库时有三个问题需要考虑: 删除缓存还是更新缓存? 更新缓存:每次更新数据库都更新缓存&#xff0…

mac电脑修改终端zsh显示的用户名

电脑名称一直没有修改,所以电脑名称都是Apple的MacBook Pro,如下图所示: mac电脑终端显示用户名太长一点也不美观,而且占用很长的行,浪费空间,可以通过修改来调整要显示什么内容: 方式一 要想换…

有向图的DFS(c++题解)

题目描述 给定一个有向图(不一定连通),有N个顶点,M条边,顶点从1..N依次编号,求出字典序最小的深度优先搜索顺序。 输入格式 第1行:2个整数,N(1≤N≤200)和M(2≤M≤500…

2核4g服务器够用吗?

2核4G服务器够用吗?够用。阿腾云以2核4G5M服务器搭建网站为例,5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户同时在1秒内打开网站,并发数为10&am…

C#使用Entity Framework Core处理数据库(三)

Entity Framework Core(EF Core)是一个轻量级、跨平台的对象关系映射(ORM)框架,用于在.NET应用程序中处理数据库操作。它提供了一种将数据库中的数据映射到.NET对象模型的方法,使开发人员可以使用面向对象的…

Day66:WEB攻防-Java安全SPEL表达式SSTI模版注入XXEJDBCMyBatis注入

目录 JavaSec搭建 Hello-Java-Sec搭建 Java安全-SQL注入-JDBC&MyBatis Java安全-XXE注入-Reader&Builder Java安全-SSTI模版-Thymeleaf&URL Java安全-SPEL表达式-SpringBoot框架 知识点: 1、Java安全-SQL注入-JDBC&MyBatis 2、Java安全-XXE注…

综合实验---Web---进阶版

实验配置: 7-1为内网Nginx服务器;7-2和7-3为Web服务器;7-4为网关服务器;7-5为外网客户机; yum安装Nginx;yum安装Mysql; 编译安装PHP;编译安装 由于我们Nginx和Mysql都是yum安装&…

java数据库关系型数据库设计(上)

目录 1.数据库设计的重要性及定义 1.数据库设计的重要性 1.失败的数据库设计造成的后果 2.优秀的数据库设计带来的好处 2.数据库设计的定义 2.数据库需求分析 1.需求分析的步骤 1.收集信息 2.标识实体 3.标识每个实体详细信息 4.标识实体之间的联系 1.数据库设…

架构实战:海量存储系统与分布式概念解析

在当今的互联网时代,海量数据的存储和处理成为了技术领域的热门话题。为了应对数据量的激增,传统的单体存储系统逐渐暴露出其局限性,而分布式系统因其高扩展性、高可用性和容错性等优势,成为了解决这一问题的关键技术。本文将通过…

同城预约上门服务APP小程序开发 打造快捷便利生活

随着移动互联网的快速发展,人们的生活方式正在发生深刻的变化。特别是在城市生活中,人们越来越依赖移动应用来解决日常生活中的各种问题。其中,同城预约上门服务APP正成为一种新型的生活服务平台,为人们提供了更加便利和快捷的服务…

腾讯云图形验证码的PHP示例

需要准备的 1.API密钥 SecretId 及 SecretKey 两部分, SecretId 用于标识 API 调用者的身份, SecretKey 用于加密签名字符串和服务器端验证签名字符串的密钥。 前往API密钥管理页面,即可进行获取 https://console.cloud.tencent.com/cam/ca…

idea将非UTF-8的properties修改为UTF-8编码的文件

需求背景 由于项目初始化时,properties文件的编码格式为ASCII编码格式,此时用idea打开该文件会默认展示UTF-8的编码内容,其中汉字可以正常展示,但是使用notepad打开却依旧时ASCII编码格式 idea配置 打开idea-setting-editor-f…

【MySQL】5. 数据类型

数据类型 1. 数据类型分类 2. 数值类型 2.1 tinyint类型 数值越界测试: mysql> use tt; Database changed mysql> create table t1(-> num tinyint-> ); Query OK, 0 rows affected (0.01 sec)mysql> insert into t1 values(-128); Query OK, 1 r…

代码随想录算法训练营第四十八天 | 121. 买卖股票的最佳时机

好忙这几天&#xff0c;偷个懒小做一点&#xff0c;后面有空补回来 题目链接&#xff1a;121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int maxProfit(vector<int>& prices) {int minrINT_MAX;int result0;for(int …

前端React篇之对 Redux 的理解,主要解决什么问题?Redux 原理及工作流程

目录 对 Redux 的理解&#xff0c;主要解决什么问题&#xff1f;Redux 原理及工作流程 对 Redux 的理解&#xff0c;主要解决什么问题&#xff1f; Redux是一个用于管理数据状态和UI状态的JavaScript应用工具&#xff0c;主要解决了在复杂JavaScript单页应用&#xff08;SPA&a…

飞桨科学计算套件PaddleScience

PaddleScience 是一个基于深度学习框架 PaddlePaddle 开发的科学计算套件&#xff0c;利用深度神经网络的学习能力和 PaddlePaddle 框架的自动(高阶)微分机制&#xff0c;解决物理、化学、气象等领域的问题。支持物理机理驱动、数据驱动、数理融合三种求解方式&#xff0c;并提…

c#学习记录

1.使用可以使转义字符无效 class study {static void Main() {string a "123\t123";Console.ReadLine();Console.WriteLine(a); }} 例如&#xff1a;string a "123\t123";&#xff0c;输出123\t123 2.字符的不可变性 例如&#xff1a; class study …

Day40:安全开发-JavaEE应用SpringBoot框架JWT身份鉴权打包部署JARWAR

目录 SpringBoot-身份鉴权-JWT技术 SpringBoot-打包部署-JAR&WAR 思维导图 Java知识点 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&#xff0c;第三方组件使用等. 框架库&#xff1a;MyBatis&…

SQLiteC/C++接口详细介绍之sqlite3类(十三)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十二&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十四&#xff09;&#xff08;未发表&#xff09; 40.sqlite3…