当前位置: 首页 > news >正文

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) //返回字符串

相关文章:

  • NPM的操作步骤
  • Zabbix监控Windows主机
  • promise解决回调地狱的方法之一
  • HTML5的兼容性测试
  • 为了Cisco UC,36年来家中第一次安装固话
  • 链式调用和解决回调地狱的终极解决方法async,await
  • jquery的使用
  • 探究JVM——垃圾回收
  • jQuery的节点操作
  • 大数据计算新贵Spark在腾讯雅虎优酷成功应用解析
  • jQuery获取元素尺寸
  • ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来
  • 浅谈利用SQLite存储离散瓦片的思路和实现方法
  • Vue及双向绑定
  • 跟我一起ggplot2(1)
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Fundebug计费标准解释:事件数是如何定义的?
  • Invalidate和postInvalidate的区别
  • iOS 系统授权开发
  • Java知识点总结(JavaIO-打印流)
  • Map集合、散列表、红黑树介绍
  • Node + FFmpeg 实现Canvas动画导出视频
  • 闭包--闭包作用之保存(一)
  • 给初学者:JavaScript 中数组操作注意点
  • 坑!为什么View.startAnimation不起作用?
  • 力扣(LeetCode)56
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 使用agvtool更改app version/build
  • 一份游戏开发学习路线
  • 一个完整Java Web项目背后的密码
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # C++之functional库用法整理
  • #QT项目实战(天气预报)
  • $(selector).each()和$.each()的区别
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (五)关系数据库标准语言SQL
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转) Android中ViewStub组件使用
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)平衡树
  • ./configure、make、make install 命令
  • .form文件_SSM框架文件上传篇
  • .form文件_一篇文章学会文件上传
  • .NET Core 版本不支持的问题
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET业务框架的构建
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .php文件都打不开,打不开php文件怎么办
  • .pop ----remove 删除