芯が強い人になるESTJ-A

# nodejs--知识--不利用框架

IT開発 Tags: 无标签 阅读: 175

截屏2021-06-05 08.52.17.jpg
导入http包,create一个server
[方法?url?解析querystring,返回JSON.stringify,监听端口]
method访问方法,post?get?
const url访问的网址?拿到
req.query拿到的是对象obj,通过解析querystring(查询字符串),parse改成对象
res.end返回字符串,所以要把obj通过,JSON.stringify把req.query变成JSON字符串。[JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串,]

get

//nodejs--get请求

const http = require('http');
const querystring = require('querystring');

const server = http.createServer((req,res)=>{
  console.log('method:',req.method)
  const url = req.url
  console.log('url:',url)
  req.query = querystring.parse(url.split('?')[1])
  console.log('query:',req.query)
  res.end(JSON.stringify(req.query));
})
server.listen(8000)
console.log("ok ,successed")

截屏2021-06-05 09.49.52.jpg

post

const http = require('http')
const server = http.createServer((req,res)=>{
  if(req.method === 'POST'){
    //res数据格式
    console.log('req content-type:', req.headers['content-type'])
    //接受数据。水管流动,chunk二进制转字符串,
    let postData = ''
    req.on('data', chunk =>{
      postData += chunk.toString()
    })    
    req.on('end',()=>{
      console.log('postData:',postData)
      res.end('hello world nodejs')
    })
  }
})


server.listen(8000)
console.log('okay,successed')

post+get无框架

//nodejs--get请求
const http = require('http');
const querystring = require('querystring');



//nodejs--post请求
const server = http.createServer((req,res)=>{
  const method = req.method
  const url = req.url
  const path = url.split('?')[0]
  const query = querystring.parse(url.split('?')[1])

  //设置返回格式为JSON,格式有很多还有text格式的,我这里需要json格式数据
  res.setHeader('Content-type','application/json')
  //返回数据
  const resData = {
    method,
    url,
    path,
    query
  }
  //返回
  if(method === 'GET'){
    res.end(JSON.stringify(resData))
  }
  if(method === 'POST'){
    let postData = ''
    req.on('data', chunk=>{
      postData += chunk.toString()
    })
    req.on('end', ()=>{
      resData.postData = postData
      res.end(JSON.stringify(resData))
    })
  }

})


server.listen(8000)
console.log('okay,successed')

开发接口
截屏2021-06-05 13.22.43.jpg

promist,then,callback
基本框架

//用于处理postdata,这里=js的callback,用原生自带promise函数.then
const getPostData = (req) => {
  const promise = new Promise((resolve, reject)=>{

  })
  return promise

}
session 与 cookie 的区别

session 保存在服务器,客户端不知道其中的信息;
cookie 保存在客户端,服务器能够知道其中的信息。
session 中保存的是对象,cookie 中保存的是字符串。
session 不能区分路径,同一个用户在访问一个网站期间,所有的 session 在任何一个地方都可以访问到。而 cookie 中如果设置了路径参数,那么同一个网站中不同路径下的 cookie 互相是访问不到的

nodejs文件读取>>日志相关

//引入库
const fs =require('fs')
const path = require('path')
//__dirname=当前目录,
const fileName = path.resolve(__dirname,'data.txt')

//读取文件
fs.readFile(fileName,(err,data)=>{
    if(err){
        console.error(err)
        return
    }
    //data is Binary=>toString(),data是二进制类型,所以需要转换一下
    console.log(data.toString())
})

//写入文件
const content = '这一条数据是系统自动写入的新内容\n'
const opt = {
    flag: 'a'
}
//1fileName,2写入内容content,3opt写入方法,4回调函数,只管是否报错
fs.writeFile(fileName,content,opt,(err)=>{
    if(err){
        console.error('文件写入失败原因:',err)
    }
})