Node.js


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


一、什么是Node.js

在这里插入图片描述Node.js的官网地址

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、fs模块

在这里插入图片描述

1.读取指定文件中的内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//导入fs模块,来操作文件
const fs =require('fs')

//调用fs.readFile()方法读取文件
//参数1 读取文件的存放路径
//参数2 读取文件时采用编码格式 一般默认utf8
//参数3 回调函数 拿到对齐失败和成功的结果 err dataStr
fs.readFile('./files/1.txt','utf8',function(err,dataStr){
    console.log(err)
    console.log('------------------')

    console.log(dataStr)
})

在这里插入图片描述

2.指定文件中写入内容

在这里插入图片描述

3.路径问题

在这里插入图片描述

二、path路径模块

在这里插入图片描述

在这里插入图片描述

1path.join()

在这里插入图片描述
在这里插入图片描述

2.path.basename()

在这里插入图片描述

path.extname()

在这里插入图片描述
在这里插入图片描述

三、http 模块

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建基本的web服务器

在这里插入图片描述

//1导入http模块
const http =require('http')
//2创建web服务器实例
const server = http.createServer()
//3为服务器绑定request事件,监听客服端的请求
server.on('request',function(req,res){
    console.log('someon visit oue web server.')
})
//4启动服务器
server.listen(8080,function(){
    console.log('server running at http://127.0.0.1:8080')

})

req

在这里插入图片描述
在这里插入图片描述

res

在这里插入图片描述
在这里插入图片描述

//1导入http模块
const http =require('http')
//2创建web服务器实例
const server = http.createServer()
//3为服务器绑定request事件,监听客服端的请求
server.on('request',(req,res)=>{
    //req是请求对象
    const str =`你请求的url地址是 : ${req.url},请求的method类型为 :${req.method}`
    console.log(str)
    //res是响应对象
    //解决中文乱码问题设置响应头Content-Type的值为text/html; charset=utf-8
    res.setHeader('Content-Type','text/html; charset=utf-8')
    //把中文内容响应给客户端
    res.end(str)
})
//4启动服务器
server.listen(8080,function(){
    console.log('server running at http://127.0.0.1:8080')

})

根据url地址响应不同的html内容

在这里插入图片描述
在这里插入图片描述

//1导入http模块
const http =require('http')
//2创建web服务器实例
const server = http.createServer()
//3为服务器绑定request事件,监听客服端的请求
server.on('request',(req,res)=>{
    const url =req.url
    let content = '<h1>404 Nont found!</h1>'
    if(url === '/'||url==='/index.html'){
        content='<h1>首页</h1>'
    }else if(url === '/about.html'){
        content='<h1>关于页面</h1>'
    }
    res.setHeader('Content-Type','text/html; charset=utf-8')
    res.end(content)
})
//4启动服务器
server.listen(8080,function(){
    console.log('server running at http://127.0.0.1:8080')

})

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//1导入http模块
const http =require('http')
const fs =require('fs')
const path =require('path')


//2创建web服务器实例
const server = http.createServer()
//3为服务器绑定request事件,监听客服端的请求
server.on('request',(req,res)=>{
    const url =req.url
    const fpath = path.join(__dirname,url)
    fs.readFile(fpath,"utf8",(err,dataStr)=>{
        if(err) return res.end('404 Not fount.')
        res.end(dataStr)
    })
})
//4启动服务器
server.listen(8080,function(){
    console.log('server running at http://127.0.0.1:8080')

})

在这里插入图片描述
在这里插入图片描述

//1导入http模块
const http =require('http')
const fs =require('fs')
const path =require('path')


//2创建web服务器实例
const server = http.createServer()
//3为服务器绑定request事件,监听客服端的请求
server.on('request',(req,res)=>{
    const url =req.url
//    const fpath = path.join(__dirname,url)
    let fpath=''
    if(url==='/'){
        fpath = path.join(__dirname,url)
    }else{
        fpath = path.join(__dirname,'./clock',url)

    }
    fs.readFile(fpath,"utf8",(err,dataStr)=>{
        if(err) return res.end('404 Not fount.')
        res.end(dataStr)
    })
})
//4启动服务器
server.listen(8080,function(){
    console.log('server running at http://127.0.0.1:8080')

})

四、模块化

在这里插入图片描述

加载模块

在这里插入图片描述
在这里插入图片描述

模块作用域

在这里插入图片描述

module 对象(向外共享模块作用域中的成员)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述两个功能一样
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

模块化规范

在这里插入图片描述

五、npm与包

在这里插入图片描述查找
下包

在这里插入图片描述在这里插入图片描述

npm体验

传统
在这里插入图片描述使用npm包

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

包管理

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

快速创建package.json

在这里插入图片描述

切换npm下载地址

在这里插入图片描述
或者安装nrm
在这里插入图片描述

包的分类

项目包

在这里插入图片描述

全局包

在这里插入图片描述

i5ting_toc

在这里插入图片描述
在这里插入图片描述

规范包

在这里插入图片描述

开发包

功能

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

初始化包的基本结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
调用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模块化拆分

在这里插入图片描述

在这里插入图片描述

编写说明文档

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、express

在这里插入图片描述
express官网

在这里插入图片描述在这里插入图片描述

1.安装

在这里插入图片描述

创建基本的web服务器

在这里插入图片描述

监听get请求

在这里插入图片描述

监听post请求

在这里插入图片描述

把内容响应给客服端

在这里插入图片描述
在这里插入图片描述

获取url中携带的查询参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

托管静态资源

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
托管多个
在这里插入图片描述

挂载路径前缀

在这里插入图片描述

nodemon(自动重启)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

路由

在这里插入图片描述method就是请求类型post还是get
path就是url地址

在这里插入图片描述在这里插入图片描述

模块化路由

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

中间件

在这里插入图片描述在这里插入图片描述

定义中间件

在这里插入图片描述在这里插入图片描述
发起请求会在终端调用

在这里插入图片描述

简写全局中间件

在这里插入图片描述

中间件作用

在这里插入图片描述

在这里插入图片描述

定义多个中间件

在这里插入图片描述

局部中间件

在这里插入图片描述

在这里插入图片描述

中间件分类

在这里插入图片描述

1.应用级

在这里插入图片描述

2.路由级

在这里插入图片描述

3.错误级

在这里插入图片描述在这里插入图片描述

4.expre内置中间件

在这里插入图片描述
json
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述urlencoded
在这里插入图片描述在这里插入图片描述

5.第三方

在这里插入图片描述
在这里插入图片描述

自定义中间件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

使用express写接口 api路由模块

get接口

在这里插入图片描述创建api路由模块js文件
在这里插入图片描述在apirouter里编写get接口
在这里插入图片描述

在这里插入图片描述

post接口

在这里插入图片描述

服务器.js======================================================

//导入express
const express = require('express')
//创造web服务器
const app =express()
//解析表单中间件
app.use(express.urlencoded({ extended:false }))


//导入路由模块
const router=require('./apirouter.js')
app.use('/api',router)

app.listen(8080,()=> {
    console.log('server running at http://127.0.0.1:8080')
})

路由.js======================================

const express = require('express')
const apiRouter = express.Router()

apiRouter.get('/get',function(req,res){
    const query =req.query
    console.log(query)
    res.send({
        status:0,
        msg:'get',
        data:query
    })
})
apiRouter.post('/post',function(req,res){
    //通过req.body获取url-encoded数据
    const body =req.body
    console.log(body)
    res.send({
        status:0,
        msg:'post',
        data:body
    })
})

module.exports = apiRouter

基于cors解决跨域问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

cors

在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

jsonp接口

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

七、数据库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

八、mysql模块

安装mysql模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

查询数据

在这里插入图片描述

插入数据

在这里插入图片描述
在这里插入图片描述

更新数据

在这里插入图片描述在这里插入图片描述

删除数据

在这里插入图片描述
在这里插入图片描述

web开发模式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

身份验证

在这里插入图片描述

在这里插入图片描述

sesssion认证机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装expresss-session

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
前端首页代码

$(function() {
  // 调用 getUserInfo 获取用户基本信息
  getUserInfo()

  var layer = layui.layer

  // 点击按钮,实现退出功能
  $('#btnLogout').on('click', function() {
    // 提示用户是否确认退出
    layer.confirm('确定退出登录?', { icon: 3, title: '提示' }, function(index) {
      //do something
      // 1. 清空本地存储中的 token
      localStorage.removeItem('token')
      // 2. 重新跳转到登录页面
      location.href = '/login.html'

      // 关闭 confirm 询问框
      layer.close(index)
    })
  })
})

// 获取用户的基本信息
function getUserInfo() {
  $.ajax({
    method: 'GET',
    url: '/my/userinfo',
    success: function(res) {
      if (res.status !== 0) {
        return layui.layer.msg('获取用户信息失败!')
      }
      // 调用 renderAvatar 渲染用户的头像
      renderAvatar(res.data)
    }
    // 不论成功还是失败,最终都会调用 complete 回调函数
    // complete: function(res) {
    //   // console.log('执行了 complete 回调:')
    //   // console.log(res)
    //   // 在 complete 回调函数中,可以使用 res.responseJSON 拿到服务器响应回来的数据
    //   if (res.responseJSON.status === 1 && res.responseJSON.message === '身份认证失败!') {
    //     // 1. 强制清空 token
    //     localStorage.removeItem('token')
    //     // 2. 强制跳转到登录页面
    //     location.href = '/login.html'
    //   }
    // }
  })
}

// 渲染用户的头像
function renderAvatar(user) {
  // 1. 获取用户的名称
  var name = user.nickname || user.username
  // 2. 设置欢迎的文本
  $('#welcome').html('欢迎&nbsp;&nbsp;' + name)
  // 3. 按需渲染用户的头像
  if (user.user_pic !== null) {
    // 3.1 渲染图片头像
    $('.layui-nav-img')
      .attr('src', user.user_pic)
      .show()
    $('.text-avatar').hide()
  } else {
    // 3.2 渲染文本头像
    $('.layui-nav-img').hide()
    var first = name[0].toUpperCase()
    $('.text-avatar')
      .html(first)
      .show()
  }
}

jwt认证机制

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述### 使用jwt
在这里插入图片描述
在这里插入图片描述

安装jwt

在这里插入图片描述
在这里插入图片描述

定义secret密钥

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值