首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Nodejs深度探秘:event loop的本质和异步代码中的Zalgo问题

Nodejs是一个高效的异步服务平台,因此非常适合于开发高并发的后台服务。要满足高并发,后台服务需要做到的是能够及时响应客户端发送过来的请求。...这里要注意的是”响应“而不是”完成“,客户端可能要求后台从数据库查询特定数据,后台接收请求后会告诉客户端”你的要求我收到而且正在处理,当我处理完成了再通知你”。...由此NodeJS能完成高并发的原因在于,它会将那些耗时长的处理提交给线程池处理,它的主线程则一直响应客户端的请求,等到线程池把耗时久的任务完成,主线程拿到结果后再发送给对应的客户。...由于nodejs的异步模式,有些错误可能很难处理,这类问题称之为Zalgo问题,他们的特点是把同步逻辑和异步逻辑组合在一起从而导致难以复现和难以调试的Bug,一个例子如下: import {readFile...更多干货点击:http://m.study.163.com/provider/7600199/index.htm?share=2&shareId=7600199

1.2K10

Web开发在过去20多年时间里如何改变了我

不但需要在客户端编写更复杂的JavaScript代码,而且最近几年还发生了一些奇特的事情:JavaScript正在转移到服务器,而web技术则往桌面转移。...强大的JavaScript库,如KnockOut、Backbone,以及后来的Angular和React。...我不怎么对NodeJS感兴趣,除了在后端使用它,因为一些工具基于NodeJS。也许这是一个错误,谁知道呢; ) 现在我们有了ASP.NET Core,这感觉比传统的ASP.NET MVC更自然得多。...Angular2是应该好好研究TypeScript的一个原因,因为现在的Angular2完全是用TypeScript写的。...几个星期前,我启动了我第一个真正的NodeJS项目:一个使用NodeJS来为用户提供高度灵活脚本运行时的桌面应用程序。

1.5K60

我攻克的技术难题:时隔5年重拾前端开发,倒在了环境搭建上

我本地不知道啥时候装了nodejs,执行node -v后输出v18.13.0,符合要求。ok@angular/cli这是啥,咋也不懂,执行安装命令就行,输出看上去是没有问题。...出现问题一:nodeJS版本过高Error: error:0308010C:digital envelope routines::unsupported...............出现问题二:nodeJS版本低于Angular CLI版本降版本之后重新运行npm start,您猜猜怎么着Node.js version v14.12.0 detected.The Angular CLI...有小伙伴吐槽,因为在降本增“笑”的原因,现在他们被公司要求要写前端,被迫全栈发展,竟意外发现开发效率极其高。还有小伙伴说“前端被裁的剩下几个人,一个前端对接十个后端。”。...我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

28020

gulp自动化打包(上)

本文分为上下两篇,上篇主要介绍一些常用的gulp插件(也是此次打包主要用的gulp插件),而下篇主要以一个demo项目为例,从本地checkout出合适的git版本,压缩、合并、到最后打成zip包,发送至指定目录...开始使用gulp 下载gulp 开始玩gulp之前,要确定自己有nodejs的环境,没有的话,先去弄个nodejs,这个比较简单,直接在https://nodejs.org/en/,下载一个对应开发环境的...function () { git.checkout('v1.0.0', function (err) { if (err) throw err; }); }) 详细的gulp-git使用方法,参照...); gulp-uglify js压缩插件,有四个可选属性,分别为 mangle:是否混淆变量名,默认为true(混淆),全局变量不会被混淆,之前看到有的代码中的require被混淆掉了,导致代码错误...如果是的话,而且你的代码是这种写法: angular.module('someApp') .controller('someCtrl',function ($scope) { }) 即简写,玩angular

1.7K30

nodejs基础-

全栈开发技术栈: MEAN-MongoDB express Angular Nodejs 二、nodejs特点 1、事件驱动 2、非阻塞I/O模型(当执行I/O操作时,不会阻塞线程) 3、单线程 4...、拥有世界上最大的开园库生态系统--npm 三、nodejs 网站 1、nodejs官方网站 https://nodejs.org 2、nodejs中文网 http;//nodejs.cn 3、nodejs...安装方法(阅读链接详情):http://www.ithao123.cn/content-10545789.html 5. JSFormat JS代码格式化插件。...SublimeLinter 一个支持lint语法的插件,可以高亮linter认为有错误的代码行,也支持高亮一些特别的注释,比如“TODO”,这样就可以被快速定位。.../相对路径的问题 解决:_dirname 、_filename _dirname:表示,当前正在执行的js文件所在的目录 _filename表示,当前正在执行的js文件的完整目录 ?

2.5K30

如何在Ubuntu 16.04上使用PM2和Nginx开发Node.js TCP服务器应用程序

我们将定义一组连接的客户端,我们将他们称为sockets,并在客户端连接时将每个客户端实例添加到此阵列。...当连接的客户端服务器发送任何数据时,我们通过迭代sockets数组将其回送给所有连接的客户端。 然后为连接的客户端终止连接时将被触发的事件close添加处理程序。...务必使用sudo权限运行此命令,以便自动安装systemd文件。...,您可以使用错误日志路径打开并查看错误日志以调试错误: cat /home/tcp/.pm2/logs/server-error-0.log 如果更改服务器代码,则需要重新启动应用程序的进程以应用更改...Nginx不支持直接向后端发送真实IP地址而不对您的系统进行一些可能影响安全性的更改,但由于我们在Nginx中启用了PROXY协议,因此Node.js服务器现在正在接收包含真实的IP的PROXY信息。

1.5K30

网站项目开发学习手册

前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程....数据库是用来存放数据的,也是属于后端开发工程师掌握的,通过服务器脚本语言,根据业务需求存储或读取数据库中的数据,分发给各个发送到服务器请求的客户端. 客户端、服务器、数据传递阅读图解HTTP一书....,渐渐Nodejs靠拢,并围绕Nodejs进行优雅的前端开发. ---- 网站项目学习体系 下面简单阐述一下,自己对各个技能栈的理解....Angular.js 我知道它封装了jQuery和Ajax. 目前没有进行系统学习,后期更新这里. React.js Facebook开源的框架....如果您想和我一起学习,毫不吝啬的私信我吧~ 介个是我的个人博客,欢迎参观哦~

2.1K60

一些值得思考的前端面试题

使用Fragment 1000个并排的div元素中,插入一个平级的div元素,如何优化插入的性能;先 display: none 然后插入 再 display: block ;赋予key,然后使用virtual-dom...// 如果func.call(target)返回的res是个对象或者function 就返回它 设计一个攻击服务器的策略;伪造虚假npm包 + nodejs版本的payload, nodejs的反序列化攻击...写一个正则,去除掉html标签字符串里的所有属性,并保留src和href两种属性。...讲讲了解过v8的那几个模块和部分 现在有多个spa的项目,有angular的,有vue的和react的,如何将他们合并成一个大统一的spa项目。...提示 项目相关 怎么实现页面性能监控,首屏时间计算等 怎么实现一个JS错误监控 HTTP Http请求中的keep-alive有了解吗? http的状态码中,499是什么?

1.3K10

写在2021: 值得关注学习的前端框架和工具库

正在考虑把博客迁移到GatsbyJS + CMS的方案,这样随便找一台电脑就能写博客了。...AngularAngular 是我最近正在学的框架,在开始前我其实是拒绝的,但写了两个例子之后我觉得真香!...深入TS类型编程推荐我之前写的这篇 TypeScript的另一面:类型编程 具体的不做展开介绍了,真的让我滔滔不绝安利Ng这篇文章就不住了,所以有兴趣的同学欢迎去体验下。...NodeJS NestJS,一个大而全的Node框架,就像NodeJS里的Angular,实际上作者也是受到了Angular的影响,很多装饰器都和Ng中的同名。...我正在捣鼓的新项目就是基于Angular + Nest,越写越爽。 如果你打算Angular和Nest都学,我的建议是先学Nest,这样入门Angular的学习路线会更平滑一点。

2.8K10

后端程序员的Angular快速指南|TW洞见

我们会先在服务器上合成一段HTML,把它发回给浏览器;之后,几乎任何操作都会服务器发送一个请求,服务器再渲染一个完整的新页面发回来。 跳出习惯性思维,反思一下:这是自然的吗?...Chrome,特别是V8引擎的诞生,终于结束了JS解释器的性能问题,更重要的是,基于V8引擎,诞生了伟大的NodeJSNodeJS就是前端世界的JRE或.net CLR。...而随着NodeJS入侵到后端世界和桌面世界,模块化成了不得不做的事情,于是NodeJS内置的CommonJS就成为了事实性的标准。...在Angular 1.x的时代,单元测试中不得不使用诸如$controller(如果你不懂,忽略它)等框架内部API,而Angular 2测试框架的设计中完全封装了它们,当你测试一个组件时,大部分时候几乎就是在测试一个普通的类...当你的前端技能还在蹒跚学步的时候,放心的写下一些粗糙的HTML/CSS代码,比如用div搭建出丑陋但能与你所写的组件顺畅协作的html文件。然后,提交它,等你的队友帮你把它修成漂亮的产品级界面。

1.8K100
领券