Express基于Node.js基础知识【1】全面总结 推荐收藏

news2024/11/28 19:47:15

最近在用基于node.js平台的web应用开发做项目,梳理了下关于Express框架的相关知识,方便自己以后查看,希望也能帮助证字啊学习express相关知识的同学,欢迎大家参考,有问题评论区留言,谢谢。

目录

1.安装

1.1 直接安装

1.2通过Express提供的脚手架进行安装packpack

2.新建项目

2.1安装遇到报错

2.2重新安装成功

2.3项目结构解读

3.Express基本用法

3.1使用express搭建web服务器

3.2页面显示数据 hello world! 

3.3 使用nodemon自动重启服务器

3.4新增post请求访问 login

4.Request对象

4.1发送get请求 / 看req信息

4.2 发送get请求 /user 看req信息又是什么。

4.3请求带参数req的params信息

4.4 req中的方法

5.response属性

5.1属性

5.2方法

5.2.1 send方法发送文本

5.2.2 res.send() 发送对象以及数组

5.2.3 res.json()  和 res.send() 一样 可以发送 json对象以及数组对象。

5.2.4 res发送文件 res.sendFile() 

5.2.5 发送状态码 res.status()

5.2.6 发送请求头res.set() / res.header() 

5.2.7 res.get()获取方法

5.2.8 页面跳转 res.redirect()方法。


1.安装

1.1 直接安装

新建一个项目,控制台打开项目,命令行输入npm init 指令 生成package文件。

执行后自动生成一个package.json文件。

然后输入 npm install express 安装,安装成功后package.json文件会显示当前版本,可以看到现在使用的是 express4版本。

我们新建一个index文件打印一下,可以看到我们执行成功了。

本项目使用编辑器:vscode下载安装配置

node.js下载安装环境变量配置请参考:Node.js 下载安装配置 超详细-CSDN博客

1.2通过Express提供的脚手架进行安装packpack

全局安装:express-generator

首先命令行 npm install -g express-generator 这样就可以使用express了。

2.新建项目

新建项目指令 express generator

2.1安装遇到报错

上面我们已经安装好express脚手架,现在我们可以用express 后跟项目名称来新建一个项目了,不幸的是这里新建项目的时候报错了,如果你也遇到这个问题,请参考PowerShell中提示about_Execution_Policies问题处理方法

2.2重新安装成功

经过处理我们重新执行express generator 最终项目新建成功了。

2.3项目结构解读

我们可以看到新建项目已经包含默认的项目结构文件,现在我们打开当前项目,安装需要的依赖

启动项目

安装依赖成功后 输入命令 npm start 启动项目 

可以看到我们这里 npm start 其实对应的就是 node ./bin/www,项目结构中的public存放的就是我们的静态资源,routers 文件夹存放的路由文件,views文件夹就是模板文件。

3.Express基本用法

  1. 使用express搭建web服务器
  2. 使用nodemon自动重启服务器
  3. 使用postman发送请求
3.1使用express搭建web服务器

我们在前面直接创建的course的项目,新建了index.js文件简单搭建了web服务器,并且运行了index文件,现在我们服务器已经启动成功了。

3.2页面显示数据 hello world! 

我们通过get请求,然后显示hello world,然后控制台重启服务器,发现访问3000端口页面和我们所想的一样,出现了 hello world!

3.3 使用nodemon自动重启服务器

前面我们文件修改之后都要重启服务器才能查看修改效果是否生效,过于繁琐,所以接下来我们来介绍下nodemon自动重启服务器。使用也很简单:

  1. npm install -g nodemon 全局安装
  2. nodemon 后跟文件名  比如 nodemon index.js  
  3. 修改index.js 文件保存后系统自动重启了

安装好了nodemon之后也可以在package.json文件配置start 启动项,npm start启动项目。

3.4新增post请求访问 login

这里我们写了通过post方式访问login接口,并且返回 login succeed!信息。

这里我们通过postman测试。postman安装很简单。可以看到根据地址访问接口,成功出现了我们期待的信息。

4.Request对象

4.1发送get请求 / 看req信息

这里我们发送一个请求并带两个参数,打印一下req的 url path 和 query信息。

可以看到打印信息。

4.2 发送get请求 /user 看req信息又是什么。

4.3请求带参数req的params信息

4.4 req中的方法

5.response属性

5.1属性

5.2方法
5.2.1 send方法发送文本

这里如果联系使用两个send会报错,send是一个响应周期,结束后在执行就会报错。

5.2.2 res.send() 发送对象以及数组

5.2.3 res.json()  和 res.send() 一样 可以发送 json对象以及数组对象。

5.2.4 res发送文件 res.sendFile() 

5.2.5 发送状态码 res.status()

5.2.6 发送请求头res.set() / res.header() 

5.2.7 res.get()获取方法

5.2.8 页面跳转 res.redirect()方法。

这篇写的有点长了,如果想继续了解express框架的其他基础知识请参考:

Express基于Node.js基础知识【2】总结,谢谢。

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

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

相关文章

【人工智能】基础三:深度学习概述、人工神经网络基础

文章目录 一. 深度学习1. 深度学习概念2. 深度学习原理3. 深度学习学习方式4. 深度学习训练方法 二. 人工神经网络基础1. 神经元感知器模型2. 神经网络模型2. 学习方式3. 学习规则3.1. 正向传播求误差3.2. 反向传播求偏导(ing) 4. 激活函数 一. 深度学习…

【环境搭建问题】linux服务器安装conda并创建虚拟环境

1.检查有没有conda 首先看root文件夹下有没有anaconda或者conda 没有的话就要先下载安装conda: https://repo.anaconda.com/archive/index.html 在这个链接下找自己需要的。服务器一般为linux,所以我这里选择的是: 2.安装conda 下载安装…

阳光混合试验的三个指标

户外干燥气候循环系统(仿真模拟空气干燥气侯)户外湿冷气侯循环系统(仿真模拟寒湿和冰冷晚间气侯)室内干燥气候耐久度 阳光模拟温湿度试验箱 主要用于汽车及零部件的曝晒试验、如塑料样板、仪表盘、中控屏、方向盘、保险杠等&…

基于 GADF+Swin-CNN-GAM 的高创新电能扰动信号识别模型!

往期精彩内容: 电能质量扰动信号数据介绍与分类-Python实现-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer…

【计算机毕设论文】基于SpringBoot的诗词管理系统

💗博主介绍:✌全平台粉丝5W,高级大厂开发程序员😃,博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】小伙伴可以关注我 感兴趣的可以先收藏起来,同学门有不懂的毕设选题,项目以及论文编写等…

轻松入门Linux—CentOS,直接拿捏 —/— <1>

一、什么是Linux Linux是一个开源的操作系统,目前是市面上占有率极高的服务器操作系统,目前其分支有很多。是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统 Linux能运行主要的UNIX工具软件、应用程序和网络协议 Linux支持 32…

小程序开发_05协同工作和发布

一、开发流程 二、权限管理 三、不同成员的权限 四、小程序发布上线的步骤 上传代码--->提交审核-->发布1. 上传代码 提交审核 三、发布上线

文件IO相关作业

1> 使用文件IO完成&#xff0c;将源文件中的所有内容进行加密&#xff08;大写转小写、小写转大写&#xff09;后写入目标文件中 源文件内容不变 #include<myhead.h>int main(int argc, const char *argv[]) {//判断传入的是否是两个文件if(argc!3){write(2,"inp…

期末复习资料——计算机系统基础

第一章 1、下列关于机器字长、指令字长和存储字长的说法中&#xff0c;正确的时_②、③_ ①三者在数值上总是相等的。②三者在数值上可能不相等。③存储字长是存放在一个存储单元中的二进制代码位数。④数据字长就是MDR的位数。 机器字长、指令字长和存储字长&#xff0c;三…

【区块链+绿色低碳】碳低链 | FISCO BCOS应用案例

在碳中和、碳达峰国家战略的号召下&#xff0c;碳中和数字化、协同低碳的发展如火如荼。但是在金融业的实际场景应用中&#xff0c; 存在数据收集效率低、数据核查困难、服务单一等问题&#xff0c;痛点集中为两个&#xff1a;一是数据冗杂&#xff0c;可能会存在数据篡改&…

【python报错已解决】`AttributeError: ‘DataFrame‘ object has no attribute ‘ix‘`

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言&#xff1a; 在数据分析或者数据处理的过程中&#xff0c;我们经常会遇到各种各样的报错信息&#xff0c;这些报错信息往…

【漏洞复现】APP分发签名系统index-uplog.php存在任意文件上传漏洞

漏洞描述 APP分发签名系统index-uplog.php存在任意文件上传漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵…

游戏类App出海广告变现,新手开发者如何选对聚合广告平台?

无论是轻量化小游戏还是中重度游戏&#xff0c;厂商的终极目标都是盈利。从商业化角度来说&#xff0c;单一的变现模式存在一些问题。纯内购驱动的游戏除了少数大竞技品类&#xff0c;大多是为垂直玩家设计&#xff0c;难以扩量。而纯广告变现驱动的游戏&#xff0c;在抗风险方…

所谓有趣的灵魂,实际上就是这个人的信息密度和知识层面,都远高于你!

1. 信息界的“百科全书” 信息密度&#xff1a;大脑里的“硬盘” 我们先来八一八什么是信息密度。想象一下&#xff0c;如果大脑是个硬盘&#xff0c;那么信息密度高的人&#xff0c;硬盘里存的可都是高清大片和无损音乐&#xff0c;随时准备给你来一场视听盛宴。 知识层面&am…

vue3数据结构的渲染01

处理数据&#xff1a; //现有原始数据showCertificateUrl “url01;url02” 使用以下代码将两条通过分号";"分割的url进行处理 const parseUrls () > {urls.value [];// 每次重新赋值前一定要清空之前的旧数据&#xff01;if (!showCertificateUrl.value) {retu…

[前端]解决Iframe即使设置高度100%,但还是显示滚动条scrollbar的问题

前言 好烦,你看看这两个重复的滚动条. 一个是来自iframe,另一个来自父级的div(overflow: auto;) 我已经在css中设置了iframe的height: 100%;border: none;,但无论如何还是显示出了父级的scrollbar 解决 将iframe的display: block;即可. 或者vertical-align: bottom;

安全测试与渗透测试的区别

在这个数字化时代&#xff0c;网络安全如同数字世界的守护神&#xff0c;其重要性不言而喻。而在这场没有硝烟的战争中&#xff0c;安全测试与渗透测试作为两大核心利器&#xff0c;常常被提及却又容易混淆。今天&#xff0c;就让我们揭开它们的神秘面纱&#xff0c;一探二者之…

2024.7.30 作业

1> 使用文件IO完成&#xff0c;将源文件中的所有内容进行加密&#xff08;大写转小写、小写转大写&#xff09;后写入目标文件中&#xff0c;源文件内容不变 #include <myhead.h> int main(int argc,const char *argv[]) {int fd1 -1,fd2 -1;if((fd1 open(".…

【和相同的二元子数组】python刷题记录

R2-前缀和专题 目录 前缀和哈希表 双指针 ps: 第一眼过去&#xff0c;这题应该能用双指针解出来&#xff0c;应该也能用前缀和解题。 前缀和哈希表 适用于 nums[i] 值不固定为 0 和 1 的其他情况 class Solution:def numSubarraysWithSum(self, nums: List[int], goal: i…

Vue入门记录(一)

效果 本文为实现如下前端效果的学习实践记录&#xff1a; 实践 入门的最佳实践我觉得是先去看官网&#xff0c;官网一般都会有快速入门指引。 根据官网的快速上手文档&#xff0c;构建一个新的Vue3TypeScript&#xff0c;查看新建的项目结构&#xff1a; 现在先重点关注comp…