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相关方法
解析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)
常用系统模块
assert(条件,‘条件不成立输出的信息’)
可用在大型模块/函数,每一阶段断言测试或函数参数校验
assert.deepEqual(变量,预期值,msg)比较 成员相当于==
assert.deepStrictEqual(变量,预期值,msg) 深度比较相对于 ===
path.resolve('root/a/b','../c','build','..','scrt');
//返回 root/a/c/scrt
获取当前文件的绝对路径
path.resolve(__dirname,'build')
//返回www/text/build
b2}) 将json转译为url参数形式