Node.js学习

Node.js学习

  • [1. Node.js介绍](#1. Node.js介绍)
  • [2. Node.js特点](#2. Node.js特点)
    • [2.1 单线程](#2.1 单线程)
    • [2.2 非阻塞的I/O](#2.2 非阻塞的I/O)
    • [2.3 事件驱动](#2.3 事件驱动)
  • [3. Node.js实践](#3. Node.js实践)
  • [4. Express](#4. Express)
    • [4.1 Express介绍](#4.1 Express介绍)
    • [4.2 Express---get请求接口](#4.2 Express—get请求接口)
    • [4.3 Express---网络请求其他方式](#4.3 Express—网络请求其他方式)
  • [5. 静态文件托管](#5. 静态文件托管)
  • [6. 路由模块配置](#6. 路由模块配置)
  • [7. 参数传递](#7. 参数传递)
    • [7.1 参数传递基本实现](#7.1 参数传递基本实现)
    • [7.2 过滤参数数据](#7.2 过滤参数数据)
  • [8. 前后端交互及其补充内容](#8. 前后端交互及其补充内容)

1. Node.js介绍

(ES6语法已学,这里不加补充,node基础略过,有空再补充)
本节内容介绍(后续补上连接数据库 的内容)

Node.js、Express、Koa2 三者的关系:

现在有些公司,①用node写服务器端的内容,

有些公司则②用node作中间件,不纯写后端,

而是前后端取数据的时候, 用node去做衔接
node是一个名词,它的技术是用JS来实现的,

node里面都是大量的JS,它的底层是用JS写的,

里面有大量的JS封装的事件和方法,不断地实现函数的一种回调。
Nodejs是什么

装完node之后,启动node自己的电脑就成了一台服务器。

2. Node.js特点

所谓的特点,就是Node.js是如何解决服务器高性能瓶颈问题的。

2.1 单线程

因为JS是单线程的,而Node是利用JS里面的事件(回调函数事件)去做的。

2.2 非阻塞的I/O

非阻塞的I/O:异步执行

(连接数据库、操作数据库,都是异步执行)

2.3 事件驱动

事件驱动:

三个特点的联系:

总结:Node.js最大的特点是做高并发访问的网站。

Node.js缺点:计算能力比较弱,因为它是单线程的。

应用场景:聊天室、微博(博客)
学习Node需达到的效果:自己能用Node搭建服务器,能去做前后端交互,给自己写接口,自己用。

3. Node.js实践

官网复制代码下来:

详细解析代码:

4. Express

4.1 Express介绍

Express官网介绍:

通过 npm init 命令为你的应用创建一个 package.json 文件

安装 Express 并将其保存到依赖列表中

复制这段代码

4.2 Express---get请求接口

最常用的就是get请求

学生信息太少了,可以自己写一个本地数据。 (后两个的id忘记改了)

4.3 Express---网络请求其他方式

ps。路由:访问的页面地址
url地址只能模拟get请求,不能模拟post请求?

ps:post请求多用于表单。把表单数据发送出去

解决方案:安装PostMan

实操

以此类推:

注意:教程给了网页版的,postman网页版我还没看。

5. 静态文件托管

一些在线的css/js/img文件,都可以匹配成为一个网址,这个网址,就是我们的资源的托管。
资源托管 本质是:把你的文件(CSS/JS/ 图片等)放到别人的服务器上,然后通过服务器提供的网址来访问这些文件,而不用自己搭建服务器存储。
我们想要访问图片地址,怎么访问

实操:

多静态资源目录

根目录。访问路径要匹配命名的路径

6. 路由模块配置

问题所在:

可以:把所有的页面跳转专门配置成一个JS文件。

自己创建的数据文件,也可以这样

还可以多路由模块:

但还是得匹配所写的路径

7. 参数传递

7.1 参数传递基本实现

现在写的是后端的内容,是前端发起req请求,后端res响应给前端

怎么进行参数传递呢?查看Express官网

实操:在地址栏传递参数,req.query就是参数,而后打印在控制台上(Vscode的终端是打印台,因为这是nodejs)

地址栏是字符串,控制台直接打印字符串

补充:原生的url属性,里面就有query
同样,打印code也是一样:参数里的code

也可以显示在页面上

也可以用变量来接收

post请求则需要一个中间件转一下。

实操:

然后去PostMan,但没有显示什么

因为要去PostMan内的请求头内传递参数:

7.2 过滤参数数据

网上还有请求方法是不一样的:

①一般是这样的

②但还有类似知乎这样的

一种新的传递方式

接下来,我们来写一些本地数据,做一个新闻列表:

可不可以根据id值显示对应的信息呢?(筛选其中一条)

法一:for循环

法二:

8. 前后端交互及其补充内容

(1)前后端交互

前面写的都是后端的部分,现在我们来看前后端交互。

建立index.html

因为要调用网络请求,得写ajax,所以引个在线的jquery。

操作:

复制JavaScript标签

调用:

但是报错了→跨域(接口不允许访问,因为跨域了。)

解决跨域的方法?


解决方案:

效果:

请求2同理

前端页面:

但是这样写很冗余,解决方案:抽象成一段代码:

在接收的最上方,加入下面这段代码。

(2)前后端补充内容

前后端攻城狮需要写的页面 的介绍

补充知识点:后端还会做一个页面给专门的运维人员,每天更新信息

这里的 "运维人员" 可以理解为广义上的内容运营 / 编辑人员

相关推荐
leoZ2312 小时前
第 6 篇:SchemaForm 渲染器核心实现
前端·javascript·vue.js·人工智能·神经网络·机器学习·自然语言处理
FungLeo2 小时前
成为全栈·Node 后端篇·注册登录全流程实现
node.js·登录流程·成为全栈·注册流程
CoderYanger2 小时前
前端基础——JavaScript(基础语法)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
还是大剑师兰特2 小时前
vue项目浏览器版本判别,低于IE11跳转到新页面
前端·javascript·vue.js
计算机魔术师2 小时前
奥尔特曼致歉 GPT-6 Astra 发布混乱,现已面向所有 Plus / Pro 等用户推出
前端
落樱弥城2 小时前
RHI 设计考量:不同 API 差异分析
服务器·前端·性能优化
m4Rk_2 小时前
【论文阅读】Agent 记忆机制(61):CFGM——用粗到细的记忆落地贯通经验采集、知识蒸馏与在线纠错
论文阅读·人工智能·学习·开源·github
边境悍匪2 小时前
蜗牛学苑 Java 智能体学习 Day33|AOP 面向切面编程、日志技术思维导图复盘
学习
热心网友俣先生2 小时前
2026国赛C题:五年命题规律与预测
java·c语言·前端·数学建模
我是你的开心果7783 小时前
ai全栈软件开发day21(第四阶段喽)
人工智能·学习