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

    node.js初入

    node.js初入 Node.js® 是一个免费、开源、跨平台的 JavaScript 运行时环境, 它让开发人员能够创建服务器 Web 应用、命令行工具和脚本。...比较 Buffer buffer.equals(otherBuffer) 比较 Buffer 和另一个 Buffer 是否相等。...fs.renameSync(oldPath, newPath) 读取目录 fs.readdir(path[, options], callback) fs.readdirSync(path[, options]) 创建目录 fs.mkdir...当调用一个异步方法时,Node.js 会在后台启动一个操作,然后立即继续执行后续代码,不会等待操作完成。 ​回调函数​:异步方法通常接受一个或多个回调函数作为参数。...性能​:对于 I/O 密集型操作,如文件读写,异步方法可以提高性能,因为它们允许其他操作同时进行,不会因为等待磁盘操作而闲置。

    6810

    Node 10 LTS值得关注的特性

    ---- ## fs.mkdir 和 fs.mkdirSync 支持递归参数 这两个 API 对应于 Linux mkdir 指令,但却不支持 -p 参数来递归创建目录。...导致在之前版本中,fs.mkdir 创建目录时,我们需要确保父级目录一定是存在的,否则会抛出 ENOENT 的错误。所以社区一般不会直接使用,而是用 mkdirp 这个模块。...能自动补全这些 flag 了,使用方法如下: $ node --completion-bash > node_bash_completion $ source node_bash_completion 完成后...终于,从该版本开始,Windows 下的 MSI 安装包里面会包含一个额外的选项:『是否安装 Node.js 本地编译工具套件』 它将大大减少在 Windows 上编译 Node.js 源码以及安装那些需要本地编译的...Node.js 扩展所会遇到的困难,从而进一步降低了 Windows 环境下开发 Node.js 项目的门槛。

    35010

    Node.js 的 api 设计的源头:POSIX

    如果你用过 Node.js 的 api,会不会觉得奇怪,为什么 api 的名字是这样的: 比如创建目录: const fs = require('fs'); fs.mkdir('/a/b/c', {...文件读写 open 打开文件 close 关闭文件描述符 write 写文件 read 读文件 truncate 截断文件 fsync 把文件在内存的部分写入磁盘 文件系统相关 access 确定文件是否可存取...里有同名的 api,shell 也有同名的命令: 比如: fs.stats fs.access fs.chown fs.mkdir fs.open fs.close fs.read fs.write...因为 Node.js 的 api 很多和 c 函数库、shell 命令比较接近,所以学习 Node.js 结合学习 shell 命令,或者会 c 的可以再学下系统的函数库会有更多的收获。...了解 POSIX,是理解 Node.js api 设计,学好 Node.js 的前提。

    76520

    Nodejs探秘:深入理解单线程实现高并发原理

    看到这些问题,是否有点头大,别急,带着这些问题我们来慢慢看这篇文章。 架构一览 上面的问题,都挺底层的,所以我们从 Node.js 本身入手,先来看看 Node.js 的结构。 ?...JavaScript是解析性语言,代码按照编码顺序一行一行被压进stack里面执行,执行完成后移除然后继续压下一行代码块进去执行。...上面代码块的堆栈图,当主线程接受了request后,程序被压进同步执行的sleep执行块(我们假设这里就是程序的业务处理),如果在这10s内有第二个request进来就会被压进stack里面等待10s执行完成后再进一步处理下一个请求...,后面的请求都会被挂起等待前面的同步执行完成后再执行。...3、主线程代码执行完毕完成后,然后通过Event Loop,也就是事件循环机制,开始到Event Queue的开头取出第一个事件,从线程池中分配一个线程去执行这个事件,接下来继续取出第二个事件,再从线程池中分配一个线程去执行

    3.1K41

    带你详细了解 Node.js 中的事件循环

    右侧更详细的描述了,在事件循环迭代前,先去判断循环是否处于活动状态(有等待的异步 I/O、定时器等),如果是活动状态开始迭代,否则循环将立即退出。 下面对每个阶段分别讨论。...略... poll poll 是一个重要的阶段,这里有一个概念观察者,有文件 I/O 观察者,网络 I/O 观察者等,它会观察是否有新的请求进入,包含读取文件等待响应,等待新的 socket 请求,这个阶段在某些情况下是会阻塞的...在定时器阶段结束之后,会再次进入 poll 阶段,继续等待。...Node.js 中的事件循环在每一个阶段执行后,都会检查微任务队列中是否有待执行的任务。...v11.x 之前,当前阶段如果存在多个可执行的 Task,先执行完毕,再开始执行微任务。

    2.2K30

    Node.js的事件循环(Event loop)、定时器(Timers)和 process.nextTick()

    当有操作完成时,内核会告诉 Node.js,Node.js 将合适的回调加入轮询队列等待被执行。...在事件循环的每次运行之间, Node.js 会检查是否在等待任何异步 I/O 或定时器,如果两个都没有就自动关闭。...一旦轮询队列为空,事件循环将检查是否有阈值到达了的定时器,如果有,事件循环将返回到定时器阶段来执行这些定时器的回调。 check 这个阶段允许我们在轮询阶段完成后立刻执行一些回调。...如果轮询阶段变为空闲,并且有 setImmediate() 的回调排队,那么事件循环可能会继续进入 check 阶段,而不是等待轮询回调入队。...还有一个优点是让事件循环不能继续。这可以用于在事件循环继续之前给出一个错误提示。

    1.5K30

    《Node.js》核心技术教程(笔记)

    2.4 异步编程的“事件驱动” 在异步编程中,当异步函数执行时,不确定何时执行完毕,回调函数会被压入到一个事件循环(Event Loop)的队列,然后往下执行其他代码,直到异步函数执行完成后,才开始处理事件循环...nodeProject/text/text.txt', (err, stats) => { if(err) return console.log('获取文件信息失败'); console.log('是否是文件...(path[, mode], callback); 示例: const fs = require('fs'); fs.mkdir('D:/nodeProject/createDir/', err =>...=> { console.log('有客户端连接上了'); }); server.on('listening', () => { console.log('服务器开启监听成功了,正在等待客户端连接...; socket.write('hello world'); }); server.on('listening', () => { console.log('服务器开启监听成功了,正在等待客户端连接

    1.8K31

    配置鸿蒙Windows烧录环境 && 用Hiburn烧录第一个程序

    安装Node.js 说明 如果已安装Node.js,打开命令行工具,输入node -v命令,检查版本号是否为12.0.0及以上版本。如果版本符号要求,请添加NODE_PATH变量。...Node.js安装完成后,点击Finish,系统会打开一个新窗口,自动安装必要的工具,请点击键盘任意键继续。 ?...npm install -g @ohos/hpm-cli 1 安装完成后,执行如下命令(V为大写字母)查看hpm是否安装成功。...然后再参考安装DevEco Device Tool插件的方式,离线安装C/C++插件。...会打开串口设备,并尝试开始烧写,需要确保没有其他程序占用串口设备(烧写之前可能正在用超级终端或串口助手查看串口日志,需要确保其他软件已经关闭了当前使用的串口); 复位设备,按开发板的RESET按键; 等待输出框出现三个

    2.3K51

    Nodejs探秘:深入理解单线程实现高并发原理

    看到这些问题,是否有点头大,别急,带着这些问题我们来慢慢看这篇文章。...JavaScript是解析性语言,代码按照编码顺序一行一行被压进stack里面执行,执行完成后移除然后继续压下一行代码块进去执行。...上面代码块的堆栈图,当主线程接受了request后,程序被压进同步执行的sleep执行块(我们假设这里就是程序的业务处理),如果在这10s内有第二个request进来就会被压进stack里面等待10s执行完成后再进一步处理下一个请求...,后面的请求都会被挂起等待前面的同步执行完成后再执行。...3、主线程代码执行完毕完成后,然后通过Event Loop,也就是事件循环机制,开始到Event Queue的开头取出第一个事件,从线程池中分配一个线程去执行这个事件,接下来继续取出第二个事件,再从线程池中分配一个线程去执行

    2.2K30

    Nodejs探秘:深入理解单线程实现高并发原理

    看到这些问题,是否有点头大,别急,带着这些问题我们来慢慢看这篇文章。 架构一览 上面的问题,都挺底层的,所以我们从 Node.js 本身入手,先来看看 Node.js 的结构。 ?...JavaScript是解析性语言,代码按照编码顺序一行一行被压进stack里面执行,执行完成后移除然后继续压下一行代码块进去执行。...上面代码块的堆栈图,当主线程接受了request后,程序被压进同步执行的sleep执行块(我们假设这里就是程序的业务处理),如果在这10s内有第二个request进来就会被压进stack里面等待10s执行完成后再进一步处理下一个请求...,后面的请求都会被挂起等待前面的同步执行完成后再执行。...3、主线程代码执行完毕完成后,然后通过Event Loop,也就是事件循环机制,开始到Event Queue的开头取出第一个事件,从线程池中分配一个线程去执行这个事件,接下来继续取出第二个事件,再从线程池中分配一个线程去执行

    1.2K20

    Node.js 基础入门

    执行 I/O 操作时,会在响应返回并恢复操作,而不是阻塞线程并浪费CPU 循环等待 [异步 I/O] 单线程 Node.js 保持了 JavaScript 在浏览器中单线程的特点 优点: 不用处处在意状态同步问题...,不会发生死锁 没有线程上下文切换带来的性能开销 缺点: 无法利用多核 CPU 错误会引起整个应用退出,健壮性不足 大量计算占用导致CPU,无法继续执行 浏览器为例,浏览器是多进程,JS 引擎单线程 Browser...filename, data, [options], callback); //以追加的方式写文件 fs.open(filename, flags, [mode], callback); //打开文件 fs.mkdir..., [mode], callback); //创建目录: fs.readdir(path, callback); //读取目录 fs.exists(path, callback); //查看文件与目录是否存在...部分 path.dirname(path); // 返回path的目录名 path.normalize(path);//路径解析,得到规范路径 path.isAbsolute(path); //判断路径是否是绝对路径

    1.5K50

    手把手教你把网页转为.EXE文件.(超简单)

    . - 二次元フロントエンド 你是否想过把网页变成一个电脑软件 可以使用Node.js 下载:Node.js (nodejs.org) 安装时有可能会弹出PowerShell,不要方,这很正常....安装完成后按下"Windows徽标键+R"打开运行,然后输入: cmd 也就是管理员的命令指示符 输入后的效果 输入完成后点击确认,然后控制台就蹦出来了!...出现效果且进度条结束时 我们需要安装cnpm,具体命令如下: npm install -g cnpm --registry=https://registry.npm.taobao.org 等进度条 随后,我们再通过...name "软件名" --tray "网址" 就比如要转换B站官网:nativefier --name "bilibili" --tray "https://www.bilibili.com" 现在我们静静等待转换完成就可以啦...等待转换完成后的目录显示 1640364350-image.png 但是大家可能会发现: 1640364490-image.png 详细信息不对劲 这时我们要修改 就需要这个软件 下载:http://

    6.8K63

    Node.js中的事件循环,定时器和process.nextTick()

    当其中任意一个任务完成后,内核都会通知Node.js,以保证将相对应的回调函数推入poll队列中最终执行。稍后我们将在本文中详细解释这一点。...在任意两个阶段之间,Node.js都会检查是否还有在等待中的异步I/O事件或者定时器,如果没有就会干净得关掉它。...当等待了95ms过后,fs.readFile()结束读取文件的任务并且再花费10ms的时间去完成被推入poll队列中的回调,当回调结束,此时在队列中没有其他回调,这个时候事件循环将会看到定时器的阀值已经过了...,它直接使用libuv的API去安排回调在poll阶段完成后执行 通常上来说,在执行代码时,事件循环最终会进入轮询阶段,等待传入连接、请求等。...但是,如果还有 setImmediate()回调,并且轮询阶段变为空闲状态,则它将结束并继续到check阶段而不是等待poll事件。

    2.4K30
    领券