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

原文地址:https://www.cnblogs.com/xuangewudishuaiqi/p/11751636.html