zoukankan      html  css  js  c++  java
  • node js

    周末的整理

    js之间的传输

    require-----------接收数据

    首先引入自定义模块(相对路径写完整)
    设置变量连接require

    module.exports----发送数据

    设置module.exports发送某个变量或数据

    读取文件的内容

    引入内置的fs模块

    异步读取方式
    fs.readFile
    // 异步
    fs.readFile(filePath,'utf8',(err,data)=>{
        if(err){
            console.log('读取文件内容失败:'+err.message)
            return
        }
        console.log('文件内容是:'+data)
    })
    
    同步的读取方式
    fs.readFileSync
    // 同步读取内容时如何处理错误信息,避免导致后面代码不执行  try...catch 
    try{
        //有错误时执行catch
        let content = fs.readFileSync(filePath,'utf8')
        console.log('====================',content)
    }catch{
        console.log('发送错误:'+e.message)
    }
    
    将文件的内容写入

    如果路径没有改文件,会自动新建一个

    覆盖式的写入------fs.writeFile(写入的路径,写入的内容,回调函数)

    const fs = require('fs')
    let filePath = './data.txt'
    let filePath1 = './收获.txt'
    fs.readFile(filePath,'utf8',(err,data)=>{
        if(err){
            console.log('读取失败')
            return
        }
        fs.writeFile(filePath1,data,(err)=>{
            if(err){
                console.log('写入失败'+err.message)
                return
            }
            console.log('写入成功')
        })
    })
    

    追加式写入--------fs.writeFile(写入的路径,写入的内容,{flag:'a'},回调函数)

    fs.writeFile(filePath1,data+'
    ',{flag:'a'},(err)=>{
            if(err){
                console.log('写入失败:'+err.message)
                return
            }
            console.log('写入成功')
        })
    
    删除文件

    删除功能------fs.unlink(路径。回调函数)

    const fs = require('fs')
    fs.unlink('./1.txt',(err)=>{
        if(!err){
            console.log('删除成功')
            return
        }
        console.log('删除失败:'+err.message)
    })
    

    该方法不能删除文件夹

    读取文件夹内容
    // 读取文件夹中的内容
    const fs = require('fs')
    fs.readdir('./文件传递',(err,data)=>{
        if(err){
            console.log('读取文件夹失败:'+err.message)
            return
        }
        for(let a in data){
            console.log(data[a])
            fs.writeFile('./文件传递/2.txt',data[a]+'
    ',{flag:'a'},(err)=>{
                console.log('写入成功')
            })
        }
        console.log(data)
    })
    

    只能读取一层

    创建文件夹

    fs.mkdir(路径,回调函数)

    const fs = require('fs')
    // 创建文件夹
    let dirPath = './config'
    fs.mkdir(dirPath,(err)=>{
        if(err){
            console.log('创建失败了:'+err.message)
            return
        }
        console.log('创建成功了')
    })
    })
    
    修改文件名

    fs.rename(要修改的文件夹路径,新的路径,回调函数)

    const fs = require('fs')
    let today = new Date()
    let newName = './'+today.getFullYear()+(today.getMonth()+1)+today.getDate()+today.getSeconds()
    fs.rename('./2019102610',newName,(err)=>{
        console.log('修改成功')
    })
    

    创建服务器

    创服务器

    读取用户传过来的数据

    app.get('/user/info',(req,res)=>{
        console.log('当前客户端传递的参数有:',req.query)
        res.send('请求用户详情信息,用户id是'+req.query.userId)
    })
    
    

    post请求中:body-parser -----通过此模块将用户post的数据封装到req.body上

    配置bodyParser

    app.use(bodyParser.json())//用于接收用户是json方式传递的数据
    app.use(bodyParser.urlencoded({extended:false}))// 用于接收表单方式以x-www-form-urlencoded方式传递的数据
    
    
    中间件

    全局中间件:过滤用,一切网址都先通过中间件

    // 全局中间件
    app.use((req,res,next)=>{
        // req请求对象
        // res响应对象
        // next是一个函数----调用它则进入到下一个环境
        console.log('这是全局中间件,请求任意一个路径之间将执行此函数')
        if(userLogin){
            next()
        }else{
            res.send({code:-1,msg:'请先登录'})
        }
    })
    
    

    局部中间件:过滤用,一切该接口的网址都先通过中间件

    // 局部中间件
    app.use('/article',(req,res,next)=>{
        console.log('这是一个局部中间件,当请求路径以/article开头时则执行此函数')
        // 在req对象上添加了一个自定义属性
        req.types = [{
            id:1,
            name:'IT'
        }]
        next()
    })
    
    

    路由

    建立服务端模块化

    使用路由将模块和服务端连接

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

    module.exports = router-----------------将路由的数据发送给server.js

  • 相关阅读:
    云小课 | 搬迁本地数据至OBS,多种方式任你选
    云小课 | 磁盘容量不够用?小课教你来扩容!
    云图说 | 容器交付流水线ContainerOps,助力企业容器化转型
    云图说 | 华为云MCP多云容器平台,让您轻松灾备!
    【DevCloud · 敏捷智库】如何拆分用户故事
    十分钟从入门到精通(下)——OBS权限配置
    十分钟从入门到精通(上)——OBS权限配置
    云图说|全新华为云云备份服务:为您的数据提供三合一的保障
    费米问题——芝加哥有多少钢琴调音师?
    算法浅谈——人人皆知却很多人写不对的二分法
  • 原文地址:https://www.cnblogs.com/xuangewudishuaiqi/p/11751636.html
Copyright © 2011-2022 走看看