Nodejs基础结构和数据处理

本文介绍了Node.js的基础知识,包括fs模块的文件操作如writeFile和readFile,以及Buffer对象的使用。此外,还讲解了HTTP模板中的服务器响应、数据交互和数据库操作。重点阐述了HTTP协议的报文结构、状态码、请求方式(GET和POST),以及如何处理GET和POST请求中的数据。最后提到了Node.js的模块系统,包括定义模块、exports和require的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fs模块(文件操作)

  • writeFile
const fs=require('fs'); //引入fs模块
//fs.writeFile(path,data,callback)  //写入文件(path:文件名,data:文件内容,callback回调)
fs.writeFile('./a.txt', 'asdfghj', err=>{
    if(err){
        console.log("失败",err);
    }else{
        console.log("成功");
    }
});

显示成功

  • readFile
//fs.readFile(path,callback) //读取文件
fs.readFile('./a.txt',(err,data)=>{
    if(err){
        console.log("错误", err);
    }else{
        console.log("成功",data);
    }
});

在这里插入图片描述
Buffer:是二进制的转化,如果要显示自己原本输入的东西则:console.log(“成功”,data.toString());

http模板(网络操作)

  • 服务器:响应请求、数据交互、数据库

  • 数据交互

  • http—协议:规定了浏览器和服务器如何去交流

  • http报文结构:1.header(头):信息
    2.body(身体):具体的内容或数据

  • 状态码
    1xx:信息---------告诉你一个无关紧要的信息
    2xx:成功------成共
    3xx:重定向—你的资源在另一个地址,请找它要
    4xx:请求错误----浏览器那边的错误
    5xx:服务器错误—我们这边的错误

  • 请求方式

  • GET:获取数据(数据放在url传输的)、容量少(<32k)。

  • POST:向服务器发送数据(数据放在body里)、容量大。

  • 接收浏览器的GET数据----url
    1.引入url模块
    2.url.parse(req.url,true)=>{
    pathname,query
    }
    GET=>"/aaa/b?xx=xxx&xxx=xx"

    在这里插入图片描述
    在这里插入图片描述
    url.parse方法:https://blog.youkuaiyun.com/swimming_in_it_/article/details/77439975

  • 接收浏览器的POST数据—body*
    1.分几次进行
    2.let arr=[];
    req.on(‘datq’,buffer=>{
    arr.push(buffer);
    });
    req.on(‘end’,()=>{
    let buffer=Buffer.concat(arr);
    });
    POST=>“xx=xxx&xxx=xx”

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

  • 接口—API
const http=require('http');
const url=require('url');
const querystring=require('querystring');
const fs=require('fs');

http.createServer((req, res)=>{
  let path='', get={}, post={};

  if(req.method=='GET'){
    let {pathname, query}=url.parse(req.url, true);

    path=pathname;
    get=query;
    complete();
  }else if(req.method=='POST'){
    path=req.url;

    let arr=[];
    req.on('data', buffer=>{
      arr.push(buffer);
    });
    req.on('end', ()=>{
      let buffer=Buffer.concat(arr);

      post=querystring.parse(buffer.toString());
      complete();
    });
  }

  function complete(){
    console.log(path, get, post);
  }
}).listen(8080);

Node.js的模块系统
1.定义模块:(常用的模块:CMD、 AND、 ESN)

  • module:批量输出
  • exports:用于输出
  • require
  • 如果带有路径–去路径下面赵
  • 如果没有不带路径–就去找node_modules文件夹或去找系统node_modules
exports.a = 12  //相当于var 一个对象
module.exports={
   a:12,b:5
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值