node.js的内置模块
内置模块是你安装nod时自带的,不需要下载和书写,直接导入进来就可以了,使用 require导入
http模块(专门用来创建服务的模块)
//导入http模块
const http=require('http');
//创建一个服务,返回值就是这个服务
let server=http.createServer((req,res)=>{
res.write('向前端写数据');
res.end(); //这个是必写的,后端需要结束响应,否则前端一直访问
})
//使用这个服务去监听一个端口号
server.listen(端口,[地址],[回调]);
fs模块(文件系统)
//导入fs模块
const fs=require('fs');
//fs模块中的几个方法
//1.专门用来异步读取文件的方法
fs.readFile('你要读取的文件','读取文件的格式(utf-8)',回调函数(err,data)=>{
//err是读取失败的错误信息
//data是读取成功的时候的内容
})
//2.专门用来同步读取文件的方法,返回值就是读取成功后的内容,如果读取失败,直接打断程序,执行报错
let data=fs.readFileSync('你要读取的文件','读取文件的格式(utf-8)');
//3.专门用来异步写入文件的方法
fs.writeFile('你要写入到哪个文件','你要写入的内容',成功写入的回调函数)
//在写入的时候是全覆盖式写入,直接把原来的内容覆盖掉
//4.专门用来同步写入文件的方法
fs.writeFileSync('你要写入到哪个文件','你要写入的内容');
//在写入的时候是全覆盖式写入,直接把原来的内容覆盖掉
//5.追加内容
fs.appendFile('写入的文件','追加的内容',err=>{})
url模块(处理url字符串,把它转化为对象)
//引入url模块
const url=require('url');
let str='http://www.baidu.com:80/app/html/index.html?a=1&b=2#title';
//parse()方法,是将url型字符串转化为对象,第一个参数为字符串,第二个参数为true,表示直接将query转化为对象
let obj=url.parse(str,true);
//format()方法将对象再转化成url字符串
let str1=url.format(obj);
querystring模块(处理查询字符串,非地址栏传参时使用)
//引入querystring模块
const querystring=require('querystring');
let str='a=1&b=2&c=3';
let obj=querystring.parse(str);
//obj:{a:1,b:2,c:3}
//obj=>str
console.log(querystring.stringify(obj)) //'a=1&b=2&c=3'
使用这几个内置模块可以实现静态资源托管和接口的实现
// 静态资源托管和接口实现
const http=require('http');
const fs=require('fs');
const url=require('url');
const querystring=require('querystring');
let server=http.createServer((req,res)=>{
//排除/facicon.ico的请求
if(req.url.indexOf('/favicon.ico')===-1){
//动态接口
if(req.url.indexOf('/api')!==-1){
// 先处理地址栏的数据
let obj=url.parse(req.url,true);
console.log('地址栏参数',obj.query);
// 处理非地址栏数据
let noaddress=''; //存放非地址栏中的数据
req.on('data',chunk=>{ //chunk代表抓取一片数据
noaddress+=chunk;
})
//读取完处理,触发end
req.on('end',()=>{
let obj=querystring.parse(noaddress);
console.log('非地址栏参数',obj);
})
}else{ //静态页面
try{
let path=req.url=='/'?'/index.html':req.url;
let data=fs.readFileSync('.'+path);
res.write(data);
}catch(e){
let data=fs.readFileSync('./err.html');
res.write(data);
}
}
}
res.end();
})
server.listen(3000,'localhost');