node

node的一些基本使用

fs文件系统

  • 在使用fs操作文件时,如果操作路径是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题。

    原因:代码在运行时,会以node命令时所在的目录动态拼接出被操作文件的完整路径。

    解决方法:写入完整路径或者__dirname(当前文件所在的目录)

  • fs.readFile(path[, options], callback )

    第一个参数:必选,字符串,表示文件路径

    第二个参数:可选,表示以声明编码格式读取文件

    第三个参数:必选,文件读取完成后,通过回调函数拿到读取结果

  • fs.writeFile(file, data[, options], callback) 可创建一个文件,不能创建文件夹,新写入的内容会覆盖之前的内容

    第一个参数:必选,需要指定一个文件路径的字符串,表示文件的存放路径

    第二个参数:必选,表示要写入的内容

    第三个参数:可选,表示以什么格式写入文件内容,默认utf8

    第四个参数:必选,文件写入完成后的回调函数

path路径

  • path.join( ) 可以把多个路径片段拼接为完整路径字符串

  • path.basename( ) 可以从文件路径中获取文件的名称部分

    第一个参数:必选,文件存放的路径

    第二个参数:可选,去掉文件后面的部分,可去掉文件的扩展名

  • path.extname( ) 可以获取路径中的扩展名部分

http

  • 创建基本的web服务

    1. const http = require( ‘http ‘ ) 导入http模块

    2. const server = createServer( ) 创建http服务

    3. server.on(‘request’, (req, res) => { } ) 绑定request事件,监听客户端的请求。req.url是客户端请求的url地址,req.method是客户端的请求类型

      res.end( )向客户端发送指定的内容,并结束这次请求的处理过程

      解决中文乱码的问题:设置响应头res.setHeader(‘Content-Type’, ‘text/html; charset=utf-8’)

    4. server.listen(端口号, callback ) 启动服务器

module

  • 使用require( )方法导入模块时,导入的结果永远以module.exports指向的对象为准

npm 和包

+ npm config get registry  查看当前的下包镜像源
+ npm config set registry=https://registry.npm.taobao.org/ 将下包的镜像源切换为淘宝镜像源
+ nrm ls 查看所有可用的镜像源
+ nrm use taobao 将下包的镜像源切换为taobao镜像
+ npm i i5ting_toc -g 
+ I5ting_toc -f 要转化demd文件路径 -o 将md文档转化为html页面
+ npm login 登录发布包
+ npm publish 发布包
+ npm unpublish 包名 --force 可删除已经发布的包
nvm 切换包

express

  • app.use(express.json( ))可以解析表单json格式的数据
  • app.use(epxress.urlencoded({ extended: false})) 可以解析表单中url-encoded格式的数据
  • app.use(express.static( )) 可以快速托管静态资源的内置中间件
  • app.use((req, res, next) => { next( ) }) 中间件

web开发模式

  • 服务端渲染的优缺点:

    优点:1. 前端耗时少,服务端直接动态生成html内容,浏览器直接渲染页面

    ​ 2有利于seo,服务端响应的是完整的html页面,爬虫更容易获取信息

    缺点:1. 占用服务端资源,服务端完成html页面的拼接,请求过多对服务器造成一 定的访问压力。

    ​ 2. 不利于前后端分离,开发效率低

  • 前后端分离: 前端用ajax调用接口,后端提供api接口

    ​ 优点:1. 开发体验好

    ​ 2.用户体验好,ajax的应用提高了用户的体验,可以轻松实现页面的局部 刷新

    ​ 3.减轻了服务端的渲染压力

    ​ 缺点: 不利于seo

+ 是存储在用户浏览器中的一段不超过4kb的字符串,由name和value和其他几个控制cookie有效期、安全期、使用范围的可选属性组成
+ 不同域名下的cookie各自独立,每当客户端发起请求时,会自动把当前域名所有未过期的cookie一同发送到服务器
+ 特性:1.自动发送 2.域名独立 3.过期时限 4.4kb限制 5.不具有安全性

session(非跨域)

+ app.use( session({secret: '任意字符', resave: false, saveUninitialized: true }))

token(跨域) (JWT认证机制)

+ 由Header、Payload、Signature组成,Payload是真正的用户信息,Header和Signature是安全性相关部分,为了保证Token的安全性
+ jsonwebtoken生成JWT字符串 express-jwt 用于解析JSON对象
-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!
TYY 微信 微信
TYY 支付宝 支付宝
欢迎关注我的其它发布渠道