首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端面试2021-004

ES6提供了模板字符串语法,可以让变量在字符串的内部使用其固定语法直接参与运算,优化了变量在字符串的处理方式;同时ES6针对字符串的常见操作提供了一些扩展你函数startsWith()/endsWith...的文件模块,使用同步的方式从文件读取内容并展示到页面 // ① const fs = require("fs") const fd = fs.openSync(__dirname + "/index.html...的文件模块,同步操作函数和异步操作函数的优缺点 同步函数的特点,编写的代码,从上到下按照编写顺序依次执行,上一代码没有执行完成的情况下,下一代码处于阻塞/等待状态 优点:如果编写的代码,后面的代码需要依赖前面代码的执行结果...,此时同步方式更加符合开发习惯 缺点:在一些代码互相没有依赖的情况下,同步执行的代码比较消耗时间 异步函数的特点,编写代码有从上到下的顺序,但是执行过程中下一代码不会等待上一代码执行完成后采取执行,...,否则直接按照顺序方式编写的代码执行会出现问题

74210

说说Nodejs高并发的原理

主要工作在CPU进行)I/O(读写文件、读写数据库、读写网络请求等。...线程对比进程更轻量,在系统资源占用上更少,上下文切换(ps:所谓上下文切换,稍微解释一下:单核心CPU的情况下同一时间只能执行一个进程或线程的任务,而为了宏观上的并行,则需要在多个进程或线程之间按时间片来回切换保证各进.../ 将读取的内容写入响应 socket.write(data); socket.end(); }) });});可以看到在nodejs,...我们可以异步的方式去进行I/O操作,通过API调用I/O操作后会马上返回,紧接着就可以继续执行其他代码逻辑,那为什么nodejs的I/O是“非阻塞”的呢?...I/O请求,等待数据准备好(网络I/O,等待数据从网络到达socket;等待系统从磁盘上读取数据等)数据准备好后,复制到内核缓冲区从内核空间复制到用户空间,用户程序拿到数据接下来我们看一下操作系统中有哪些

1.1K00
您找到你想要的搜索结果了吗?
是的
没有找到

说说Nodejs高并发的原理

线程对比进程更轻量,在系统资源占用上更少,上下文切换(ps:所谓上下文切换,稍微解释一下:单核心CPU的情况下同一时间只能执行一个进程或线程的任务,而为了宏观上的并行,则需要在多个进程或线程之间按时间片来回切换保证各进.../ 将读取的内容写入响应 socket.write(data); socket.end(); }) });});可以看到在nodejs,...我们可以异步的方式去进行I/O操作,通过API调用I/O操作后会马上返回,紧接着就可以继续执行其他代码逻辑,那为什么nodejs的I/O是“非阻塞”的呢?...回答这个问题之前我们再做一些准备工作,read操作基本步骤首先看下一个read操作需要经历哪些步骤用户程序调用I/O操作API,内部发出系统调用,进程从用户态转到内核态系统发出I/O请求,等待数据准备好...(网络I/O,等待数据从网络到达socket;等待系统从磁盘上读取数据等)数据准备好后,复制到内核缓冲区从内核空间复制到用户空间,用户程序拿到数据接下来我们看一下操作系统中有哪些I/O模型参考nodejs

2.1K30

猿如意中的【Node.js】工具详情介绍

当 Node.js 执行 I/O 操作时,如从网络读取、访问数据库或文件系统,Node.js 不会阻塞线程和浪费 CPU 周期等待,而是会在响应返回时恢复操作....在 Node.js ,可以毫无问题地使用新的 ECMAScript 标准,因为您不必等待所有用户更新他们的浏览器——您负责通过更改 Node.js 版本来决定使用哪个 ECMAScript 版本,您还可以通过运行带有标志的...五、软件安装过程 5.1 如何在猿如意中下载开发工具nodejs? 【猿如意】安装完成后,在搜索部分,输入node进行搜索,选择获取,之后按步骤即可完成下载。...PATH 的值添加 D:\Program Files\nodejs\node_global。...系统变量设置:添加变量 NODE_PATH 值为:D:\Program Files\nodejs\node_modules 打开cmd,执行 获取全局和缓存位置 npm get prefix npm

25120

精读《如何在 nodejs 使用环境变量》

1 引言 本期精读的文章是:如何在 nodejs 使用环境变量。 介绍了开发与生产环境如何管理环境变量。 这里环境变量指的是数据库密码等重要数据,而不是指普通变量传参。...2 概述 环境变量历史悠久,在运行第一 JAVA 代码之前,你就得将环境变量设置好。 可问题是,系统变量并不易用,比如结尾是否要使用分号,JAVA_HOME 与 PATH 在哪些程序功能相同?....env 文件的配置到 Nodejs 程序。...那么首先在 VSCode launch.json 配置 Npm 模式: 记住,需要给 Node 脚本添加 --inspect 参数,才能触发 VSCode debugger 的钩子: 这样一来,通过...5 更多讨论 讨论地址是:精读《如何在 nodejs 使用环境变量》 · Issue #89 · dt-fe/weekly

3K20

息息相关的 JS 同步,异步和事件轮询

虽然单线程简化了编程代码,因为这样咱们不必太担心并发引出的问题,这也意味着在阻塞主线程的情况下执行长时间的操作,网络请求。...调用堆栈具有 LIFO 结构,这意味着项目只能从堆栈顶部添加或删除。 回到上面的代码,尝试理解代该码是如何在JS引擎执行。...在Nodejs,web api被c/c++ api所替代。 现在让我们回到上面的代码,看看它是如何异步执行的。...setTimeout()有两个参数: 1) 回调和 2) 毫秒(ms)为单位的时间。 setTimeout() 方法在web api环境启动一个2s的计时器。...等待某个事件(在本例单击event)发生,当该事件发生时,回调函数被放置在等待执行的消息队列

9.8K31

何在Node.js读取和写入JSON对象到文件

何在Node.js读取和写入JSON对象到文件 本文翻译自How to read and write a JSON object to a file in Node.js 有时您想将JSON对象存储到...您可以跳过数据库设置,而是将JSON数据保存到文件。 在本文中,您将学习如何在Node.js中将JSON对象写入文件。...在上一篇文章,我们研究了如何[在Node.js读写文件](https://attacomsian.com/blog/reading-writing-files-nodejs0。...同步方法会阻塞Node.js事件循环,其他所有操作都必须等待文件操作完成。...看一下如何在Node.js读写JSON文件的教程,了解有关在Node.js应用程序读写JSON文件的更多信息。 喜欢这篇文章吗? 在Twitter和LinkedIn上关注我。

21.3K50

在Debian和Ubuntu上安装Ghost(CMS)博客发布平台

它是在Nodejs编写的, 并附有各种各样的现代出版工具,用于轻松构建和运行在线出版物。...第1步:在Debian和Ubuntu上安装Nodejs 1.缺省Debian和Ubuntu软件库没有Nodejs,因此首先添加其存储库,然后安装如下。...$ sudo vi /etc/nginx/sites-available/ghost 添加以下配置,并确保将以下突出显示的更改为your_domain_or_ip_address 。...将配置文件包含在启用了站点的目录,并禁用默认站点,如图所示。 $ sudo vi /etc/nginx/nginx.conf 现在在http块添加以下行将配置文件包含在启用了站点的目录。...在本文中,我们展示了如何在Debian和Ubuntu设置Ghost。 通过以下反馈表将您的疑问或有关本指南的任何想法发送给我们。

1.3K40

一文学会 Node.js 的流

考虑可组合性的设计意味着能够某种方式组合多个组件产生相同类型的结果。在 Node.js ,可以通过流在其他较小的代码段传递数据,从而组成功能强大的代码段。...这个 pull request 【https://github.com/nodejs/node/pull/27867】旨在解决一旦其落在 Node 核心上产生的问题。...在流模式下,将自动从底层系统读取数据,并通过 EventEmitter 接口使用事件将其尽快提供给程序。 在 paused 模式下,必须显式调用 stream.read() 方法从流读取数据块。...当从文件读取数据时,你可能会决定读取后就发出数据事件。 当没有更多数据要读取(结束)时,流将发出结束事件。在以上代码段,我们监听此事件在结束时得到通知。...writable.write(chunk)) { await once(writable, 'drain'); } 关闭可写流,并等待写入完成(C): writable.end(); await

2.3K30

Nodejs编写异步的单元测试代码

Nodejs的开发过程,异步这个话题是无论如何都躲不过去的,关于异步的文章已经有过许多篇了,我也不打算写在开发Web应用的过程,该如何在Nodejs处理异步代码。...在前些日子,我跟单元测试覆盖率这个指标杠上了,因为自己在写一个Nodejs的工程,我希望这个工程的测试代码量不要太少,目标是100%的覆盖率,所以最近写了许多的单元测试代码。...而这段代码看似没有问题,但是运行起来会报错: Error: Timeout of 2000ms exceeded....为什么呢,原因是在第二、第四。...it块内,回调的function不要再加入done回调的,不然测试程序会一直等待你的done回调,当超时之后就会报错了。

1.4K10

如何使用 ethers.js 监听待处理交易

在这份指南中,我们将学会如何在以太坊和相似链使用 ethers.js[4] 处理待处理交易流 准备条件 在你的电脑上安装 Nodejs 一个文本编辑器 命令行终端 一个以太坊节点 什么是待处理交易 要在以太坊网络编写或者更新任何内容...当发送到以太坊网络时,交易会停留在称为“mempool”的队列,交易等待旷工被处理----- 处于这种等待交易称为待处理交易。...$ npm i ethers 此步骤中最常见的问题是 node-gyp 的内部故障。你可以按照 node-gyp 安装说明在这里[9]。...注意:如果遇到 node-gyp 问题,你需要让你的 python 版本与上述说明列出的兼容版本之一匹配。 另一个常见问题是缓存过时。...订阅我们的 newsletter[12] 获取有关以太坊的更多文章和指南。如果你有任何反馈,请随时通过 Twitter[13] 与我们联系。

2.7K30

Js面试题__附答案

在字符串语句中可以通过在第一末尾使用反斜杠“\”来完成 例:document.write("This is \a program"); 如果不是在字符串语句中更改为新,那么javaScript会忽略的断点...未声明的变量是程序不存在且未声明的变量。如果程序尝试读取未声明变量的值,则会遇到运行时错误。未定义的变量是在程序声明但尚未给出任何值的变量。如果程序尝试读取未定义变量的值,则返回未定义的值。...7、如何编写可动态添加新元素的代码? ? 8、什么是全局变量?这些变量如何声明,使用全局变量有哪些问题? 全局变量是整个代码长度可用的变量,也就是说这些变量没有任何作用域。...定时器在一个线程内运行,因此事件可能需要排队等待执行。 10、ViewState和SessionState有什么区别? “ViewState”特定于会话的页面。...DOM代表文档对象模型,并且负责文档各种对象的相互交互。DOM是开发网页所必需的,其中包括诸如段落,链接等对象。可以操作这些对象包括添加或删除等操作,DOM还需要向网页添加额外的功能。

8.8K30

nodejs基础-

REPL全称: Read-Eval-Print-Loop (交互式解释器) -R读取-该取用户输入,解析输入了Javascript数据结构并存储在内存....-E执行,执行输入的数据结构 -P打印-输出结果 -L循环-循环操作以上步骤直到用户两次按下ctrl-c按钮退出. 2,在REPL编写程序(类似于浏览器开发人员工具的控制台功能)   +直接在控制台输入...REPL界面或者输入..exit"退出REPL界面   +按住control键不要放开,然后按两下c键 十、JavaScript文件名命名规则 不要用中文 不要包含空格 不要出现node关键字 建议,...与下行互换 Ctrl+Shift+A 选择光标位置父标签对儿 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找...十四、写入读取文件 默认是utf-8,如果不写,则需要toString(),将buffer转变为string ? 解决在文件读取 .

2.5K30

何在Debian 9上安装Node.js.

如果你想了解如何在其他关于Node.js文章,你可以参考如何在Ubuntu16.04上安装Node.js 为Debian安装Distro-Stable版本 Debian在其默认存储库包含一个Node.js...要检查在这些初始步骤之后安装了哪个版本的Node.js,请键入: nodejs -v 由于与另一个包冲突,所以Debian存储库的可执行文件名叫nodejs而不是node。...或者其他您喜欢的文本编辑器检查这个脚本的内容,: nano nodesource_setup.sh 在sudo环境下运行以下脚本: sudo bash nodesource_setup.sh PPA将被添加到您的配置...它还将为您的~/.profile文件添加必要的以使用该文件。...这将安装包: ~/.nvm/versions/node/node_version/lib/node_modules/express 全局安装模块将允许您从命令行运行命令,但是您必须将程序包链接到本地范围从程序请求它

6.1K50

Java架构师的数据库秘籍:事务隔离级别与失效全解析

本文将深入探讨MySQL数据库在Java程序的事务隔离级别问题以及可能导致事务失效的各种场景,并通过示例代码展示如何在实际开发处理这些问题。 1....每个级别都旨在解决特定的并发问题脏读、不可重复读和幻读。 2. 事务隔离级别与并发问题 读未提交:最低的隔离级别,允许读取未提交的数据,可能会导致脏读。...事务失效的原因 事务失效通常指的是事务在执行过程因为某些原因而无法正常完成,常见的原因包括: 超时:事务执行时间过长,超过了数据库设置的超时时间。 锁等待超时:事务在等待锁或表锁时超时。...违反约束:数据操作违反了数据库的约束,主键约束、外键约束等。 系统崩溃或网络问题:系统故障或网络中断导致事务中断。 4....异常处理:在代码添加适当的异常处理逻辑,确保事务在遇到问题时能够正确回滚。 结语 事务隔离级别和事务失效是数据库编程的重要概念。理解它们对于构建高效、稳定的企业级应用至关重要。

23310

在流实现readline算法

在计算机世界,一就是一个段落,一个段落就是一,一个段落chunk就是一个不包含换行符的字符串。为一个chunk的流称为段落流或者叫line流。...科普: 在文本拖拽有3种行为:直接按住拖拽是以单个字符为单位选中文本;双击并按住拖拽会单词为单位进行选择;单机三次并按住拖拽会议一为单位进行选择。...readline源码分析 由于一的长短不一,许多平台没有提供段落流,幸运的是,nodejs提供了。nodejs标准库内置的readline模块就是一个可以从可读流逐行读取的接口。...如果单纯从内存读取字符串非常容易,但从外存,从文件系统读取就要考虑时空效率了。...通过这种算法,段落流每次都能从外存文件读取,最重要的是,消耗的内存完全不受文件大小的影响。

2K30

NodeJS模块研究 - stream

nodejs ,实现各种功能,总避免不了和“数据”打交道,这些数据可能是 Buffer、字符串、数组等等。但当处理大量数据的时候,如何保证程序的稳健性?如何不让内存爆掉呢?...如果通过fs.readFile()一次性将 100GB 大文件读入内存,那么可能会发生以下几个问题: 内存错误。本机内存不够,或者超过了 nodejs 的内存限制。 程序性能下降。...理解缓冲的作用,就要先搞明白缓冲的处理流程: 可写流: 调用 write()向流写入数据 数据进入可写流缓冲 数据等待被消费 可读流: 调用 read()向流读取数据 数据进入可读缓存 数据等待被消费...如何解决背压问题? 结合前面对缓冲的讲解,在向可写流写入数据的时候,如果超过可写缓存,应该暂停数据读取等待缓存数据被消耗完毕后,再继续流动可读流。...参考连接 Nodejs 文档 数据流的积压问题 通过源码解析 Node.js 中导流(pipe)的实现 Node.js Stream - 基础篇

91830

NodeJS】基于Express框架创建的Node后台获取前端传过来的参数

此文章是这个系列的第四篇文章,我们给大家介绍下如何在Node的后台项目中获取前端页面传过来的值。...写在前面 NodeJS后台主要是用来实现后台数据库的增删改查,那么数据库的增删改查是需要依赖我们前端传过来的数据值,也就是说,我们要在数据库插入一个值,插入的这个过程是NodeJS后台代码来做,具体要插入的值则是我们前端通过...ajax或者axios传过去的值,所以就有一个问题:在NodeJS后台我们要接受前端传过来的值。...2、首先在后台项目根目录下运行命令行工具,然后安装这个插件,如下: npm install body-parser --save-dev 3、然后在index.js文件添加如下两配置代码: var...接口如何接收前端传过来的参数问题,对于GET类型的后台接口,我们后续讨论,因为博主暂时并没涉及到GET类型的后台接口需求。

1.8K20
领券