nodejs的简单分析理解
实现nodejs
引入相应的模块/依赖
注意:在nodejs中异步的带有回调函数,当获取了异步的结果的时候就会触发回调函数,同步操作没有回调函数
1 引入那个模块就用
let 变量名=require(‘模块名’)
require()是方法
eg: let http=require(“http”)
let url=require(“url”)
let fs=require(“fs”)
let querystring=require(“querystring”)
2 创建相应的文本服务。返回相应的对象
let app=http.createServer((req,res)=>{
req.url 地址 提取地址栏数据
req.on(“data”) 提取非地址栏数据
req.on(“end”)
res.writeHead(200,{“Content-type”:“text/html;charset=utf-8”});响应头的设置
res.write(字符串、数据)返回数据
res.end()//结束响应,必须要写的
})
3 监听服务器
app.listen(端口,地址,回调函数)
4 读取:readFile
fs模块–磁盘操作,文件操作
fs.readFile(“文件路径”,编码格式utf-8,function(err,data){
console.log(“err”,err)
console.log(“data”,data)
})
err是错误 ,data是正确
变量=fs.readFileSync(“文件路径”)
运行中如果出现错误,就用 try{ 排错的代码}catch(e){ }
更改名字:
fs.renameSync(“改之前的名字”,“改之后的名字”)
删除
fs.unlinkSync(“文件路径”)
静态资源托管
静态资源: .css .htm .js .json 等等
前端请求资源的方式:link src href
后端资源读取
fs.readFile(文件名,编码方式,回调(err,data));
接口
前端操作get post put delete等等8种常见的
js: ajax//jsonp
后端处理方式 :http【s】
req.url 抓取get请求的数据 切字符 | url模块
req.on(“data”,(chunk)=>{chunk每次收到的数据, buffer})
req.on("end,()=>{接收完毕 切字符 querystring})
url模块
用法:url.parse(string,true) 返回对象, true处理query对象
在url中这两个参数, true这个的作用可以让我们省去很多的for循环,
//把url字符串转成对象
let str=“http://www.baidu.com:80/app/html/index.html?a=1&b=2&c=3#title”;
let obj =url.parse(str,true)//true就是处理query为对象的
// console.log(obj.query)
console.log(obj.query.a,obj.query.b,obj.query.c)//可以更方便的取得参数值信息a=1&b=2&c=3 --1 2 3
url.format(obj) 返回字符
querystring模块
作用:处理查询字符串:
eg:访问url地址中 ?参数
方法:
querystring.parse(str)//返回对象
querystring.stringify(obj) //返回字符串