通读cheerio API ——NodeJs中的jquery 所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成. ###cheerio 为服务器特别定制的,快速.灵活.实施的jQuery核心实现. ###Introduction 将HTML告诉你的服务器 var cheerio = require('cheerio'), $ = cheerio.load('<h2 cla…
nodejs中的异步 1 nodejs 中的异步存在吗? 现在有点 javascript 基础的人都在听说过 nodejs ,而只要与 javascript 打交到人都会用或者是将要使用 nodejs .毕竟 nodejs 的生态很强大,与 javascript 相关的工具也做的很方便,很好用. javascript 语言很小巧,但是一旦与 nodejs 中的运行环境放在一起,有些概念就很难理解,特别是异步的概念.有人会说不会啊,很好理解啊?不就是一个ajax请求加上一个回调函数,这个ajax函…
一. 什么是 CommonJs? JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器. 然而, JavaScript标准定义的 API 是为了构建基于浏览器的应用程序.并没有制定一个用于更广泛的应用程序的标准库. CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷. 它的终极目标就是: 提供一个类似 Python, Ruby 和 Java 语言的标准库,而不只是停留在小脚本程序的阶段.用 CommonJS API 编写出的应用, 不仅可以利…
目录 简介 event loop和worker pool event loop和worker pool中的queue 阻塞event loop event loop的时间复杂度 Event Loop中不推荐使用的Node.js核心模块 partitioning 或者 offloading V8引擎的限制 REDOS正则表达式DOS攻击 JSON DOS攻击 阻塞Worker Pool 总结 为什么我们不要在nodejs中阻塞event loop 简介 我们知道event loop是nodejs中…
事件循环是 NodeJS 处理非阻塞 I/O 操作的和核心机制.NodeJS 的事件循环脱胎于 libuv 的事件循环,因此,要搞清楚 NodeJS 的事件循环,还需要先了解 libuv 的事件循环是如何工作的. libuv 的事件循环 我们先来了解两个基本概念:句柄(handle)和请求(request). 句柄是指在整个事件循环活跃时间内能够执行某些操作的长期对象.比如一个 TCP 服务句柄,每当有新的联接建立时,这个句柄的 connected 回调就会被调用. 请求是通常指短期操作.比如向…
Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳的话,用这些方法都可以,那么这些方法有什么区别呢? new Date().getTime()和Date.now() 这些方法是通过node运行环境的系统时间毫秒数,+new Date()写法的效果和new Date().getTime()效果相同. 在需要频繁使用时间戳的场景中,需要关注方法性能,这…
前面的话 Node组织了自身的核心模块,也使得第三方文件模块可以有序地编写和使用.但是在第三方模块中,模块与模块之间仍然是散列在各地的,相互之间不能直接引用.而在模块之外,包和NPM则是将模块联系起来的一种机制.在介绍NPM之前,不得不提起CommonJS的包规范.JavaScript不似Java或者其他语言那样,具有模块和包结构.Node对模块规范的实现,一定程度上解决了变量依赖.依赖关系等代码组织性问题.包的出现,则是在模块的基础上进一步组织JavaScript代码.CommonJS的包规范…
最近在写xmocker的工具,用于开发前期的mock数据,不可避免的用到了代理的中间件.当然,github上有关于http-proxy封装的中间件.毕竟是自己练手的项目,就自己写了个中间件,方便定制功能. http-proxy库用于koa中,是使用它的 proxy.web方法.常规的用法是: proxy.web(req, res, { target: 'http://mytarget.com:8080' }, function(e) { ... }); 项目中的要求是将API代理到用户填写的网址…
在nodejs中,json序列化时Date类型时,默认转为UTC格式. 如下图 上面只是一个例子,下面我用一个更具体化的例子来展示一个这个情况,我们在开发WEB项目中,经常用到Express组件, 我们就用express创建了一个demo项目 这是一个express项目,大家都很熟悉吧,我们现在要提供一个api接口,返回一些信息 返回操作员信息,这是很正常的接口吧, 大家看一下,接口log日志中显示的时间是晚上20点,可是接口返回的JSON数据即是12点,差8个小时. 为什么呢? 原因是因为JS…
在nodejs中,json序列化时Date类型时,默认转为UTC格式. 如下图 zhupengfei@DESKTOP-HJASOE3 MINGW64 /d/MyProject/exp2 $ node > new Date(); 2018-04-24T12:32:55.590Z > 上面只是一个例子,下面我用一个更具体化的例子来展示一个这个情况,我们在开发WEB项目中,经常用到Express组件, 我们就用express创建了一个demo项目,我们现在要提供一个api接口,返回一些信息 返回操作…