nodejs杂项

node.js四个常用包

const http=require('http');//建立服务
const fs=require('fs');//文件相关操作
const querystring=require('querystring');//解析解析url参数
const url = require('url');//处理url

指定文件写入数据
指定文件写入数据如果没有那个文件则创建
fs.writeFile(path,data,calback(err))
path:路径
data:数据
callback:回调函数
读取指定文件
fs.readFile(path,callback(err,data))

创建服务

let server=http.createServer((req,res)=>{
  //req:接收请求
  //res:发送请求
}).listen(8080)

request相关方法

  • req.method:获取页面请求方式(post/get)
  • res.write(data):页面写入数据
  • res.end();数据写入完毕
  • res.url:返回用户请求的url

解析get&post

get
第一种方法

	let [url,query] = req.url.split('?');//将地址与参数分隔
	let get = querystring.parse(query);//解析get数据
	{name:test,pwd:123}

第二种方法

let result = url.parse(req.url,true);//第二个参数为true表示一并解析get数据
//将地址与get数据分开
let {path,data} = url.parse(req.url,true);

post

    //由于post数据较大时是分段发送的因此服务器要分段接收
    let arr = [];//定义一个数组接收post数据

    req.on('data',buffer=>{
    	//如果有post数据过来将其添加到数组
    	arr.push(buffer);
    });
    req.on('end',()=>{
    	let buffer = Buffer.concat(arr);
    	//当数据发送完毕时,使用buffer对象连接数据
        querystring.parse(buffer);
        //利用querystring解析post数据类似于name=er$pass=45
        //解析为 {name:er,pass:45}
    })

node模块

定义模块

1.定义模块
一个文件就是一个模块
通过module对象 实现批量导出

 module.exports={
   a:12,b:45
  }

通过exports对象导出一个

  exports.a = 12;
//导出函数
exports.funcname=function(){}

引入模块

 const mode = require('./mode.js')//必须加路径

如果不想加路径,直接把模块放在node_modules目录

 const mode = require('mode');
  console.log(mode.a)

常用系统模块

  • 1.assert:断言
    assert(条件,‘条件不成立输出的信息’)
    可用在大型模块/函数,每一阶段断言测试或函数参数校验
    assert.deepEqual(变量,预期值,msg)比较 成员相当于==
    assert.deepStrictEqual(变量,预期值,msg) 深度比较相对于 ===
  • 2.path:路径
    路径拼接,信息获取
    path.dirname(url) 返回文件目录
    path.extname(url) 返回文件扩展名
    path.basename(url) 返回文件名.扩展名
    path.resolve() 将路径解析单一路径
path.resolve('root/a/b','../c','build','..','scrt');
//返回 root/a/c/scrt

获取当前文件的绝对路径

path.resolve(__dirname,'build')
   //返回www/text/build
  • 3.url :网址
    url.parse(str);解析网址相关信息.
    url.parse(str.true);将url参数解析为json格式
  • 4.querystring :请求数据
    querystring.parse(url参数) 将url参数解析json
    …stringify({a:1:b2}) 将json转译为url参数形式
原创文章 134 获赞 9 访问量 8777

猜你喜欢

转载自blog.csdn.net/weixin_45143481/article/details/105151114
今日推荐