初识node.js

模块的引入
const module = require("模块名称")
fs模块
  • 文件的异步读取
//fs.readFile('地址',回调函数)

 fs.readFile("./html/index.html","utf-8",(err,data)=>{
   console.log("err",err)    //如果文件读取成功,err就是null
    console.log("data",data)  //data就是读取后的文件内容
 })
 
  • 文件同步读取
//fs.readFileSync 

let data = fs.readFileSync("./html/index.html")
console.log("data",data)  
console.log("我要成功了!")
  • try - catch - finally
try{
    let data = fs.readFileSync("./html/indexa.html")
    console.log("data",data)  
}catch(e){  //e代表事件对象
    //处理错误 
    console.log("e",e)
}
console.log("我要成功了")
  • 给文件改名
fs.rename('改前','改后',err=>{})
fs.renameSync("改前","改后")
fs.renameSync("./html/index.html","./html/about.html")
  • 删除文件
fs.unlickSync("文件路径")
  • 删除目录
 fs.rmdir("./html",err=>{
    console.log("html目录以及被删除了哦....")    
 })
http模块
const = require("http")
const http = http.createServer((req,res)=>{
	//req 相当于请求报文 
	//res 相当于响应报文
	//后端需要设置响应头 后端设置的权重高
	res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"})
	res.write("hello world")
	res.end() //后端需要结束响应 必须写
	
})

app.listen(8000,()=>{
	console.log("server in running...")
})
url模块
//let obj = url.parse(str) 返回值是个对象 数据如下

protocol: 'http:',	协议
slashes: true,	双斜杠
auth: null,   作者
host: 'localhost:8002',  主机
port: '8002',	端口
hostname: 'localhost',  baidu
hash: '#title',	哈希(锚)	search: '?username=sdfsdf&content=234234',	查询字符串
query: 'username=sdfsdf&content=234234',	数据
pathname: '/aaa',	文件路径
path: '/aaa?username=sdfsdf&content=234234',	文件路径
href: 'http://localhost:8002/aaa?username=sdfsdf&content=234234#title'
  • 第一种用法
let str = "http://www.baidu.com:80/app/html/index.html?a=1&b=2#title" 
let obj = url.parse(str)
let josn = {}
let query = obj.query
let queryArr = query.split
query.forEach(v =>{
	let vArr = v.split("=")
	json[vArr[0]] = vArr[1]
})
console.log(json)
  • 第二种用法
let str = "http://www.baidu.com:80/app/html/index.html?a=1&b=2#title" 
let obj = url.parse(str,true) //可以直接将字符串转换为对象 
url.format(obj) //可以将对象转换为url字符串
querystring模块
let querystring = require("querystring")

//处理查询字符串,地址栏的形式传参    
let str = "a=1&b=2&c=3"
querystring.parse(str) //直接将字符串转换为对象
资源托管 处理接口
//引入响应的原生模块
const http = require("http")
const fs = require("fs")
const url = require("url")
const querystring = require("querystring")

//实例化http对象 
const app = http.createServer((req, res) => {
    //排除 /favicon.ico的请求
    if (req.url.indexOf("/favicon.ico") === -1) {
        //判断读取的是动态资源 还是静态资源 
        if (req.url.indexOf("/api") !== -1) {//处理接口
            //处理地址栏的数据
            let urlObj = url.parse(req.url, true)
            console.log(urlObj.query)


            //处理非地址栏的数据
            let noAddressDate = ""
            req.on("data", chunk => {
                noAddressDate += chunk
                //chunk代表抓取的一片数据 data事件内部会频繁触发
            })
            req.on("end", () => {
                      console.log(querystring.prase(noAddressDate))
            })

        } else {//处理静态资源
            try {
   let path = req.url === "/" ? "/index.html" : req.url
   let html = fs.readFileSync("./www" + path)
   res.write(html)
            } catch (error) {
   let html = fs.readFileSync("./www/nopage.html")
     res.write(html)
            }
        }
    }
    res.end()
})
//监听端口
app.listen(3000)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值