node.js

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');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值