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

JavaScript 权威指南第七版(GPT 重译)(一)

将 JavaScript 限制 Web 浏览器提供 API 一起使用不同,Node 使 JavaScript 可以访问整个操作系统,允许 JavaScript 程序读写文件,通过网络发送和接收数据...当程序需要保留一个以供将来使用时,它将该分配给(或“存储”)一个变量。变量有名称,并且允许我们程序中使用这些名称来引用。变量工作方式是任何编程语言另一个基本特征。...例如,JavaScript if/else语句布尔true时执行一个操作,false时执行另一个操作。通常将直接创建布尔比较使用它语句结合在一起。...其他大部分属性将在本书其他地方介绍。 Node ,全局对象有一个名为global属性,是全局对象本身,因此 Node 程序始终可以通过名称global引用全局对象。...= 2, y = x*x; // 初始化器可以使用先前声明变量 如果使用let语句时没有指定变量初始,那么变量会被声明,undefined,直到你代码赋值。

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

JavaScript异步生成器函数

第一个异步生成器函数 异步生成器函数行为类似于生成器函数:生成器函数返回一个具有 next() 函数对象,调用 next() 将执行生成器函数直到下一个 yield。...假设你要循环浏览 Mongoose cursor 【https://thecodebarbarian.com/cursors-in-mongoose-45】所有文档,并通过 websocket 或命令行报告进度...console.log(`${val.processed} / ${val.total}`); } })(); 异步生成器函数使异步函数可以轻松地 framework-free 【https:...首先,在上面的示例 subscribe() 记录到控制台代码是响应式,而不是命令式。换句话说,subscribe() handler 无法影响异步函数主体代码,它仅对事件做出反应。...使用 yield 报告异步函数进度是一个很诱人想法,因为它使你可以将业务逻辑进度报告框架分离。下次需要实现进度条时,请试试异步生成器。

2.3K20

mongodb原生node驱动

写在前面 最近读《node.js学习指南》,对于mongodb没有介绍太多工作原理,但是对于一个前端开发者,即使你还没有用过这种数据库也可以让你很好理解和使用 一本非常好介绍node.js书,我一直把他放在触手可及地方...Collection MongoDB并没有表概念,我们需要一个集合. 1、在数据库创建一个collection集合对象 db.createCollection('mycollection',function...){ }) collection添加数据   添加数据之前,我们要知道node mongodb driver mongodb数据类型存在一种映射关系(但是对于数据转换背后处理机制我还不是理解很清楚...(对于可选参数和回调函数都是可选项、而且这两种选项可选非常多,但是大部分查询只会用到一小部分选项) 常用 sort(文档排序,-1倒排序,1正排序)、     Field(查询语句并返回field...)、     Skip(skip n个文档,用于跳页)     Hint(告诉数据库使用特定索引)     returnKey(只返回索引key)     Comment(查询log日志文件添加描述

2.6K60

Node使用火焰图优化CPU爆涨

2.Node.js 自带分析工具 参考文章:易于分析 Node.js 应用程序 | Node.js Node.js4.4.0开始,node本身就可以记录进程V8引擎性能信息(profiler),...看火焰图时候越图形越尖说明越正常,横条越长说明占用时间越长,从图中可以看到压测五分钟里,CPU占用时间长达两分钟,其中绝大多数被红框占据,来张大图 ?...从completeMany这里破案了,这是mongoose一个方法,作用是将查询到结果进行包装,使结果每一个文档成为mongoose文档,使之可以继续使用mongoose提供方法。...文档还提到了,lean精简模式,对于高性能只读情况是非常有用。...但这次故障也让我对诸如mongoos这样ODM使用时需要更加小心谨慎,他给我们带来了无限便利同时,可能也会因为一些额外操作,让我们服务承受额外负担,正常情况下这一点性能差距不易察觉,然而到了高峰期

2.6K40

不容错过 Node.js 项目架构

思想是使用关注点分离原则将业务逻辑从 Node.js API 路由中移开。 ? 图片描述 因为有一天,您将希望一个 CLI 工具上来使用您业务逻辑,又或从来不使用。...它是如此有条理,使我现在想编码。 单元测试示例?? 通过使用依赖项注入和这些组织模式,单元测试变得非常简单。 你不必模拟 req/res 对象或 require(...) 调用。...放置一个 .env 文件,这个文件永远不能提交(但它必须默认一起存在于存储库),然后,这个 dotenv NPM 包将会加载 .env 文件并将里面的变量写入到 Node.js process.env...对象。...我从 W3Tech 微框架采用这种模式,并不依赖于它们包装。 这个想法是将 Node.js 启动过程拆分为可测试模块。

5.8K30

Node.js 开发者需要知道 13 个常用库

Node.js 使广大开发者社区能够构建服务器端应用程序。 通过 JavaScript 库,Node.js 提供了代码重用能力,选择合适库可能会有些困难。...你可以使用库来加速编码过程并促进代码重用,这将帮助你保持工作“DRY”(不重复你自己)。框架不同是,库是已完成功能,可以项目的任何开发阶段轻松使用。...而框架通常作为整个程序骨架,对创建方式有重大影响。 Node.js 库: 让它们工作,省下你功夫 让我们来看看这 13 个 Node.js 库,并探讨它们各自特点。...https://lodash.com/ 10、Axios:Node.js和浏览器HTTP客户端 现代Web开发后端服务通信至关重要。...又或者,开发服务器端应用时,需要从其他服务获取数据。Axios同构特性使得它在Node.js环境同样表现出色。

55721

探索JavaScriptNull和Undefined深渊

了解 null 和 undefined JavaScript,null是语言关键字,不代表可识别的对象。换句话说,这表示“没有”。虽然相似,undefined实际上表示不存在。...缺失导致它们被描述虚假,这意味着当它们条件(如if语句上下文中使用时,它们假。...null 实例 用例null是将其区分主要方面,因为相比undefined,null它被视为更多分配。这就是为什么typeof运算符一起使用时返回“对象原因null。...最初理由是,null过去和现在通常用作需要对象空引用,非常类似于占位符。typeof此后,之相关这种行为已被识别为错误,尽管已提出纠正建议,出于向后兼容目的,到目前为止,该行为未更改。...这就是JavaScript环境从不将设置原因null。它必须以编程方式完成。正如有关MDN文档所述: API,null通常是可以期望有对象没有对象相关地方进行检索。

70510

精读《Prisma 使用》

,唯一多出来 posts author 其实是弥补了数据库表关联外键不直观部分,将这些外键转化为实体对象,让操作时感受不到外键或者多表存在,具体操作时再转化为 join 操作。...精读 ORM 两种设计模式 ORM 有 Active Record Data Mapper 两种设计模式,其中 Active Record 使对象背后完全对应 sql 查询,现在已经不怎么流行了,...而 ORM 是建立一个较为理想化理论基础上,即数据模型可以很好转化为对象操作,然而对象操作由于屏蔽了细节,我们无法对 SQL 进行针对性调优。...方式访问某些属性,这背后生成却是一系列未经优化(或者部分自动优化)复杂 join sql,我们写这些 sql 时会提前考虑性能因素,通过对象用时却因为成本低,或觉得 ORM 有 magic...Prisma Schema 好处 其实从语法上,Prisma Schema Typeorm 基于 Class + 装饰器拓展几乎可以等价转换, Prisma Schema 实际使用中有一个很不错优势

3.5K30

73个超棒且可提高生产力 NPM 包

通常 React-dom[4] 和 React-router-dom[5] 一起使用。...数据库工具 19.Mongoose[40] Mongoose 是一个 MongoDB 对象建模工具,设计用于异步环境工作Mongoose 支持 Promise 和回调。...模板语言 29.Mustache[50] Mustache 是一种无逻辑模板语法。它可以用于 HTML,配置文件,源代码等任何东西。它工作原理是使用 hash 或对象中提供模板展开标记。...39.Faker[62] 实用 npm 包,用于浏览器和 Node.js 制造大量假数据。 ✅ 校验工具 40.Validator[63] 便捷字符串验证器,使程序更加健壮库。...你可以传递选项对象从而决定产生颜色类型。 73.Pluralize[97] 该模块使用预先定义规则列表,按顺序应用这些规则给指定单词单数或复数。

4.5K20

MongoDB增删改查操作

实际在数据库中产生集合名为courses 1.创建文档 创建文档实际上就是向集合插入数据。 方法1 分为两步: ①创建集合实例。 ②调用实例对象save方法将数据保存到数据库。...: true }); // 调用实例对象save方法将数据保存到数据库。...,将安装目录下bin目录放置环境变量。...,例如文章信息和用户信息存储不同集合文章是某个用户发表 要查询文章所有信息包括发表用户,就需要用到集合关联。...案例:用户信息增删改查 搭建网站服务器,实现客户端服务器端通信 连接数据库,创建用户集合,向集合插入文档 当用户访问/list时, 将所有用户信息查询出来 将用户信息和表格HTML

6.2K10

React Server Components手把手教学

作为React开发者,我们必须适应这种新思维模式,以充分发挥构建应用程序方面的优势。 ❝RSC很好将服务器端渲染客户端JavaScript交互性无缝地融合在一起。...随着应用程序复杂性增加,用户下载代码量也会增加。 尽管优化了注入,用户仍然无法组件进行交互,直到客户端 JavaScript 被下载并且为该组件实现。...用户交互(事件处理程序)和访问浏览器API可以客户端组件叶子级别进行处理。 客户端组件无法导入服务器组件,反过来是可以服务器组件内部导入客户端组件或服务器组件都是可以。...假设 if (FeatureFlags.useNewPhotoRenderer) True,那么用户将会看到 NewPhotoRenderer 组件。只有该组件会被发送到客户端(或浏览器)。...传统客户端渲染,组件使用 React Suspense 来“暂停”渲染过程(并显示回退状态),同时等待异步工作完成。

61730

nodejs微信公众号开发

微信公众平台:https://mp.weixin.qq.com/ 名称 服务对象 业务类型 关注后位置 服务号 企业 任意 联系⼈人列列表 订阅号 个⼈人或媒体 信息传播 归纳订阅号 小程序 企业...任意 归纳最近使⽤用 服务号:给企业提供用户管理业务服务能⼒,实现业务扩张。...订阅号:给个⼈或媒体提供信息传播能⼒,读者建⽴更好沟通。 小程序:作⽤基本同服务号,比服务号H5应用体验更更好,但无法替代非H5沟通系统,可以实现互补。...SHA1有如下特性: 不可以从消息摘要复原信息;两个不同消息不会产生同样消息摘要,(但会有1x10 ^ 48分之一机 率出现相同消息摘要,一般使用时忽略)。...api接口于api调用,是微信验证我们服务器。 Co-wechat工具库下更多api调用 我想在index.html实现以下功能: - 实际工作,通常是用库来实现

6.1K91

一文看懂 Node.js 多线程和多进程

最坏情况下,服务器将会失去响应,并且无法将任务委派给工作池。 诸如 AI、大数据和机器学习之类领域无法Node.js 受益,因为这些操作阻塞了主线程,并使服务器失去响应。...worker.on('online', () => {}); 当工作线程停止解析 JS 代码并开始执行时发出。尽管不常用, online 事件特定情况下可能会提供更多信息。...使用工作线程方式 有两种使用工作线程方法: 方法 1 – 涉及产生工作线程,执行代码并将结果发送到父线程。此方法需要每次新任务从头创建新 worker 线程。...worker_threads 模块可用重要属性 isMainThread – 当不在工作线程内操作时,此属性 true。如果需要,则可以 worker 文件开头包含一个简单 if 语句。...尽管有大量后端多线程选择,知名公司还是喜欢 Node.js。

3.2K10

关于 Node.js 认证方面的教程(很可能)是有误

同时我也一直 Node/Express 寻找强大、一体化解决方案,来 Rails devise 竞争。...当然,该示例密码不会以任何方式散列,并且本示例验证逻辑一起存储明文中。在这一点上,甚至没有考虑到凭证存储。 让我们来 google 另一个使用 passport-local 教程。...但是,Mongoose ODM 也存储类型 String 密码,所以这些密码也存储明文中,只是这一次 MongoDB 实例上。...好吧,我们会给出一个简短凭证教程,这并不能帮助只是拷贝开发者。因为更有趣是,这个教程将这个 mongoose User 对象序列化到 JWT 。...这篇文章我还没有找到完美的方法来完全避免以上错误。 Express 应用程序增加凭证验证不应该是你工作。应该有更好办法。

4.5K90

JavaScript 权威指南第七版(GPT 重译)(五)

12.1 迭代器工作原理 for/of循环和展开运算符可迭代对象无缝配合,值得理解实际上是如何使迭代工作。在理解 JavaScript 迭代过程时,有三种不同类型需要理解。...虽然理解 Promises 如何工作仍然很重要, async 和 await 一起使用时,它们复杂性(有时甚至是它们存在本身!)会消失。...它可以function关键字一起作为语句或表达式使用。它可以箭头函数一起使用,也可以类和对象字面量方法快捷形式一起使用。(有关编写函数各种方式,请参见第八章。)...当对象o一起使用时,with语句计算Object.keys(o[Symbol.unscopables]||{}),并在创建模拟作用域以执行语句体时忽略其名称在生成数组属性。...¹ V8 JavaScript 引擎一个错误意味着这段代码 Node 13 无法正常工作

16910
领券