前端涨薪必读,node.js入门保姆级教程(代码片段)

欧阳呀 欧阳呀     2023-03-08     779

关键词:


1. Node基本概念

1.1 node.js是什么?

平常的js代码只能在浏览器运行,浏览器一关,就完犊子
Node.js 就是运行在服务端的 JavaScript

1.2 客户端与服务端交互流程

node是运行在服务端的,所以必须了解这玩意

  • 客户端向服务端发送请求
  • 服务端去数据库查询数据
  • 服务端返回给前端使用

I/O: input(输入), 往磁盘存数据,Output(输出)从磁盘中取数据

1. 如何优化整个交互过程?

  • 咱们的响应速度可以加快,比如去银行办业务,平时办业务要半个小时,现在咱们如果3分钟就能办完,是不是更快了
  • 服务器处理逻辑优化,咱们可以做个档案啥的,比如说银行的系统查询速度,与人员是相互配合的
  • 数据库优化,换更好的数据库,更好的硬件支持

2. 什么是I/O阻塞?

  • 传统的服务器是多线程的,什么叫多线程?举个生动的例子,比如咱们去大保健,非正规的,正规的咱们不去。那么是不是来一位客人,就要配一个技师,咱们一百个人去就要配一百个技师,这样体验是最好的对不,1对1服务

  • 放在服务器上,也是这样的,进来一个请求就给你一个线程,专门处理这个请求,这样成本是很大的,如果人来的多一点,那技师就忙不过来。那你就得等,这个就是I/O阻塞(对请求处理的不够及时)

1.3 node的牛逼之处在哪?

  • node就是单线程的,但是他是个超级单线程,这个技师可能有很多手,
    反正就是很牛逼,不管你来多少个人,我都可以服务,这下好了,客人不用等了,所以不会造成阻塞
  • 传统服务器对硬件要求很高,比如说大保健的地方需要配很多技师,如果没客人来,技师是不是浪费了
    node.js单线程,就一个服务员,对服务器要求不高,成本更低

1.4 node也有缺点

  • node毕竟是单线程,所以也会有个上限,举个例子,大家小时候应该知道那种声音很大的拖拉机它就是单缸的,马力很大,能上山能下地,能拉砖能栽树,开上他就是全村最靓的仔。

  • node也是如此,只适合做一些用户量不多的服务端(人数多,做分布式也可以)

  • 目前最广泛的应用:中间层(在服务器与客户端加一层),比如淘宝,网易云音乐,都有node中间层

  • Java多线程是优势,嗖嗖嗖的,贼拉快,服务端处理这块很优秀,但是对页面渲染就不行了,那咱们js不就是用来操作页面的,node又是用JS写的,所以加了一层,搭建一个node服务器成本也低,专门用于渲染页面,以及一些高并发请求

2. 第一个node.js程序

console.log('hello node.js')
console.log(this)   // this指向  node里面是没有window的

for(let i = 0; i < 2; i++)
    console.log(i)

使用node命令运行该文件即可,如(node hello.js)

3. node创建get请求

// 做一个服务器,创建一个get请求
const http = require('http');
const querystring = require('querystring')
// 创建服务
const server = http.createServer((req, res) => 
    // 请求参数
    const method = req.method;  
    console.log('method', method) // Get
    const url = req.url;
    console.log('url', url) 

    // 获取url里的参数
    // 自定义添加一个属性去接收
    req.query =  querystring.parse(url.split('?')[1])
    console.log('query', req.query)  // 这里是个对象,返回要转一下
    res.end(
        JSON.stringify(req.query)
    )
)

// 监听端口
server.listen(8000, () => 
    console.log('8000服务开启')
)
  • 大家运行文件之后,可以尝试浏览器直接访问本地的8000端口,后面加上 “/api/blog/list?author=ouyang&keyword=a”,就可以看到返回值

4. node创建post请求

// 做一个服务器,创建一个请求
const http = require('http');
// 创建服务
const server = http.createServer((req, res) => 
    if(req.method === 'POST') 
        let postData = '';  // 接受数据
        // 采用流的方式(stream) => 防止数据量过大,慢慢来流动

        req.on('data', chunk => 
            // 一点一点拼接,数据是二进制的,转换成字符串
            postData += chunk.toString();
        )

        // 数据接受完毕,打印 
        req.on('end', () => 
            console.log('postData', postData)
            res.end('数据接受完成!')
        )

        // 查询数据格式(默认的)
        console.log('post data type', req.headers['content-type'])
    
)

server.listen(8000, () => 
    console.log('8000')
)
  • 这里是post请求,不能在浏览器里输入得到结果
  • 大家可以借助Postman发起请求(如果不太懂,请科学上网)
  • 访问本地的8000端口即可

1. 希望本文能对大家有所帮助,如有错误,敬请指出

2. 原创不易,还请各位客官动动发财的小手支持一波(关注、评论、点赞、收藏)
3. 拜谢各位!后续将继续奉献优质好文
4. 如果存在疑问,可以私信我(主页有Q)

前端涨薪必读,node.js入门保姆级教程(代码片段)

...向服务端发送请求服务端去数据库查询数据服务端返回给前端使用I/O:input(输入),往磁盘存数据,Output(输出)从磁盘中取数据1.如何优化整个交互过程?咱们的响应速度可以加快,比如去银行办业务,平时办业务要半... 查看详情

elasticsearch保姆级入门教程(代码片段)

文章目录一、初识ElasticSearch二、安装Elasticsearch2.1创建网络2.2下载资源/加载镜像2.3运行2.4部署kibana2.4.1部署2.5安装IK分词器2.5.1IK分词器的两种模式2.5.2IK分词器的扩展词词典2.5.2停用词词典2.6Mapping索引库操作2.6.1常见mapping属性2.6.2... 查看详情

esp保姆级教程预告疯狂node.js服务器篇——运行第一个nodejs程序(代码片段)

忘记过去,超越自己❤️博客主页单片机菜鸟哥,一个野生非专业硬件IOT爱好者❤️❤️本篇创建记录2022-06-30❤️❤️本篇更新记录2022-06-30❤️🎉欢迎关注🔎点赞👍收藏⭐️留言📝🙏此博客均由博... 查看详情

13万字c语言从入门到精通保姆级教程2021年版(建议收藏)(代码片段)

...:先关注收藏,再查看,13万字保姆级C语言从入门到精通教程。C语言保姆级配套代码与视频教程链接文章目录计算机常识什么是计算机程序?什么是计算机语言?常见的计算机语言类型有哪些?什么是C语言?C语言历史C语... 查看详情

vue保姆级入门教程(代码片段)

文章目录一、Vue1.1Vue介绍1.2Vue特点1.3Vue周边库二、初始Vue2.1插值语法2.2指令语法2.2.1v:bind/简写:指令单向数据绑定2.2.2v-model双向数据绑定2.3事件处理2.4事件修饰符2.5键盘事件2.6计算属性2.7监听属性2.8计算属性与监听属性之间的区... 查看详情

深度学习保姆级入门教程--论文+代码+常用工具

导读该篇文章可以看作是我研一如何入门深度学习的一个大总结,本人本科专业为软件工程,硕士期间研究方向为基于深度学习的图像分割,跨度相对而言不算太大。如果你对如何入门深度学习还很迷茫的话,那... 查看详情

深度学习保姆级入门教程--论文+代码+常用工具

导读该篇文章可以看作是我研一如何入门深度学习的一个大总结,本人本科专业为软件工程,硕士期间研究方向为基于深度学习的图像分割,跨度相对而言不算太大。如果你对如何入门深度学习还很迷茫的话,那... 查看详情

机器学习神器scikit-learn保姆级入门教程(代码片段)

Scikit-learn保姆级入门教程Scikit-learn是一个非常知名的Python机器学习库,它广泛地用于统计分析和机器学习建模等数据科学领域。建模无敌:用户通过scikit-learn能够实现各种监督和非监督学习的模型功能多样:同时使用... 查看详情

保姆级jetpackcompose入门篇,含视频教程源码(代码片段)

Compose简介JetpackCompose:利用声明式编程构建Android原生界面(UI)的工具包优势更少的代码、代码量锐减强大的工具/组件支持直观的KotlinAPI简单易用Compose编程思想声明性编程范式:声明性的函数构建一个简单的界... 查看详情

esp保姆级教程疯狂node.js服务器篇——配置自动重启插件nodemon,保存触发重启(代码片段)

忘记过去,超越自己❤️博客主页单片机菜鸟哥,一个野生非专业硬件IOT爱好者❤️❤️本篇创建记录2022-07-31❤️❤️本篇更新记录2022-07-31❤️🎉欢迎关注🔎点赞👍收藏⭐️留言📝🙏此博客均由博... 查看详情

esp保姆级教程疯狂node.js服务器篇——nodejs应用部署到腾讯云,实现公网访问

忘记过去,超越自己❤️博客主页单片机菜鸟哥,一个野生非专业硬件IOT爱好者❤️❤️本篇创建记录2022-08-10❤️❤️本篇更新记录2022-08-10❤️ 查看详情

esp保姆级教程疯狂node.js服务器篇——服务端口占用问题(代码片段)

...持!🔥ArduinoESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志🔥🔥菜鸟项目合集🔥快速导读1、问题背景2、解决方案2.1方式1:打开VSCode,找到... 查看详情

搭建一个自己的hexo博客(保姆级教程)(代码片段)

搭建一个自己的Hexo博客-保姆级教程-非常详细Hexo简介环境安装node.jsgitcnpmhexoGithub/Gitee配置创建仓库搭建博客初始化将博客部署到Github/Gitee上主题寻找主题下载主题修改主题内容主题插件置顶文章私密文章加密404页面文章目录图... 查看详情

搭建一个自己的hexo博客(保姆级教程)(代码片段)

搭建一个自己的Hexo博客-保姆级教程-非常详细Hexo简介环境安装node.jsgitcnpmhexoGithub/Gitee配置创建仓库搭建博客初始化将博客部署到Github/Gitee上主题寻找主题下载主题修改主题内容主题插件置顶文章私密文章加密404页面文章目录图... 查看详情

保姆级java入门练习教程,附代码讲解,小白零基础入门必备(建议收藏)(代码片段)

🌲本文收录于专栏《技术专家修炼》试用于学完「Java基础语法」后的巩固提高及「LeetCode刷题」前的小试牛刀。作者其它优质专栏推荐:📚《源码中的设计模式》——理论和实战的完美结合📚《leetcode300题》—... 查看详情

4万字typescript保姆级入门教程(2021版)(建议收藏)(代码片段)

极客江南:一个对开发技术特别执着的程序员,对移动开发有着独到的见解和深入的研究,有着多年的iOS、Android、HTML5开发经验,对NativeApp、HybridApp、WebApp开发有着独到的见解和深入的研究,除此之外还精通JavaScrip... 查看详情

esp保姆级教程疯狂node.js服务器篇——本地部署mqtt服务器以及剖析mqtt过程

忘记过去,超越自己❤️博客主页单片机菜鸟哥,一个野生非专业硬件IOT爱好者❤️❤️本篇创建记录2022-09-03❤️❤️本篇更新记录2022-09-03❤️ 查看详情

esp保姆级教程疯狂node.js服务器篇——教室wifi自动打卡考勤(飞书群信息+nodejs)

忘记过去,超越自己❤️博客主页单片机菜鸟哥,一个野生非专业硬件IOT爱好者❤️❤️本篇创建记录2022-08-06❤️❤️本篇更新记录2022-08-06❤️ 查看详情