node学习笔记

Node.js :基于Chrome浏览器的v8引擎(js解析引擎)的JavaScript运行环境

Nodejs是后端运行环境,dombom是浏览器的内置api,无法调用

cmd Tab键快速补充路径

 

终端命令

d: 切换盘符

cd 进入文件夹

 

fs文件系统模块

Const fs=require(fs) 导入fs模块,操作文件

fs.readFile(path[编码方式]callback)

 

Path路径模块

导入path

Path.jion() 将说个路径拼接为完整的路径字符串

 

http模块 创建web服务器

导入http

http.creatServer()

 

 

req 请求对象 ,包含了与客户端相关的数据和属性

req.url 是客户端请求的url地址

Req.method 是客户端的请求类型

 

res 相应对象,包含了与服务器相关的属性

res.end() 向客户端响应内容

Res.setHeader("Content-Type","text/html; charset=utf-8") 设置Conten-type响应头,解决中文乱码的问题

 

终端命令:ctrl+C关闭服务器

 

服务器上安装了web服务器软件

 

模块的分类:1. 内置模块(fspath等)

  1. 自定义模块(用户自定义的.js文件)
  2. 第三方 (第三方开发,需要下载),又称为包

加载模块require()方法,会执行被加载模块中的代码

外界用require()方法导入自定义模块,得到的永远是module.exports所指向的对象{}

模块作用域:在自定义模块中的定义的变量和方法,只能在当前模块中使用。

可防止全局变量污染

每个.js自定义模块中有一个module对象,存储了与当前模块相关的信息

在自定义模块中,可以使用module.exports对象向外共享成员  module.exports.uname=aa

exportsmodule.exports指向同一个对象,可简写为exports

 

 

npm与包

npmnodejs管理包的工具

包会下载在node_Module文件夹中,第三方过大,不利于项目成员共享项目源码,故上传至github时应将node_Module文件夹添加至.gitignore.

Pack.json记录包信息   dependencies节点中记录用npm install 安装了哪些包

终端命令:npm init -y    快速创建pack.json,需在英文目录中

npm i moment 安装moment

npm i   安装pack.jsondependencies中的包

npm unistall 卸载指定包

npm i 包名 -D 安装到devDependencies,该包仅在开发时使用

 

包分为全局包和项目包

 

模块加载机制:1.优先从缓存中加载。模块在第一次加载后会被缓存,多次调用require 法不会执行模块中的代码多次

  1. 内置模块的加载优先级最高
  2. 自定义模块加载需以./开头

 

Express 基于node.jsweb框架

在项目所处目录下安装express  npm i express@4.17.1

Express 导入,创建web服务器实例,监听get/post请求,使用res.send()像客户端响应对象,启动服务器(listen

通过req.query可以获取客户端发送的查询参数,默认为空对象 /name=zhangsan

通过req.params可以获取动态参数         /:id

 

app.use(express.static(./文件夹”)),托管静态资源,将指定文件夹中的文件对外开放,访问路径不包含文件夹名

app.use(/abc,express.static(./文件夹”))挂载路径前缀,访问路径前需要加abc

 

Nodemon监听node.js文件的变动,自动重启服务器

 

Express中的路由:客户端请求和服务器处理函数的映射    app.get(path,function) 挂载路由

 

路由模块化,将路由挂载到express.Router()对象上,不挂载到web实例,单独的js文件

 const express=require(express)

const router=express.Router();

router.get(/,(req,res)=>{ res.send(get user list) });

module.exports=router;

 

在主文件注册路由模块

导入路由模块,注册路由模块    const router=require(./..js)   app.use(router)     

app.use()注册全局中间件

 

中间件,客户请求到达服务器,触发中间件,再通过next()转向下一个中间件或者路由

中间件分类:应用级(挂载在app上) 路由级 错误级

 

Web开发模式 服务端渲染:利于seo    前后端分离

 

http无状态限制:客户端发送的每次请求,服务端不能保留每次状态

 

Cookies是存储在用户浏览器的一般不超过4kb的字符串。由名称,值和可选属性组成

自动发送,域名独立,过期时限。

 

Sessioncookie+服务端认证

安装npm i express-session  导入session  app.use(session({}))  路由中处理函数可以通过req.session 存储信息

req.session.destroy() 清空session

 

JWT认证机制:跨域认证解决方案

 

posted @   无趣鲸鱼  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示