node下使用jquery
node使用jquery的两种方式
在node下,使用jquery有两种方法:
- 使用jsdom模拟一个window对象
- 使用cheerio,cheerio只实现了jquery的dom部分功能,相当于jquery的一个子集,jquery还包含网络请求、bom等更为丰富的API。
这两种方法各有利弊,jsdom的方式非常完善稳妥,jquery久经考验,但它的缺点在于速度较慢;cheerio速度较快,但是功能有限,然而cheerio的功能已经够用了。
使用jsdom的方式
fs = require("fs")
jquery=require('jquery')
jsdom=require('jsdom') //fs.readFileSync()返回结果是一个buffer,相当于byte[]
html = fs.readFileSync('haha.html').toString('utf8')
dom= new jsdom.JSDOM(html)
$=jquery(dom.window) console.log($('h1'))
使用cheerio的方式
cheerio=require('cheerio')
html=require('fs').readFileSync("haha.html").toString('utf8')
$=cheerio.load(html)
console.log($('h1'))
使用jquery+jsdom模拟浏览器实现自动化测试
测试是需要自动化的,靠人测不仅慢而且不准确。
测试不是为了覆盖住全部的错误,程序不可能通过测试来发现全部的问题,测试只是起到锦上添花的作用,测试只能在一定程度上减少基本错误。
selenium的自动化测试方案从用户的角度测试,node的出现为前端自动化测试提供了新方法。
node中的全局对象是global,浏览器中的全局对象是window,我们只需要让global中添加一个window对象便万事大吉了,这就需要用到jsdom。
有一个index.html文件,我们通过jquery的方式获取其中id为haha的span的文本。
<div><span id='haha'>天下大势为我所控</span></div>
很简单的lib.js
module.exports=function(){ return $("#haha").text() }
编写测试test.js
html=require('fs').readFileSync("index.html").toString('utf8')
jquery=require('jquery')
jsdom=require('jsdom')
dom=new jsdom.JSDOM(html)
global.window=dom.window
global.$=jquery(dom.window)
getHaha=require('./lib.js')
console.log(getHaha())
直接运行node test.js便能够对lib.js中的内容进行测试了。
node下使用jquery的更多相关文章
- 在 node 中使用 jquery ajax
对于前端同学来说,ajax 请求应该不会陌生.jquery 真的ajax请求做了封装,可以通过下面的方式发送一个请求并获取相应结果: $.ajax({ url: "https://echo. ...
- 夺命雷公狗---node下的一聊天室-首发
今晚感觉挺蛋疼,就用了点时间,在node下开发了个聊天室来玩玩,不过之是简单的开发了套而已,并没多做什么考虑,, 但是发现了一个好处就是用node来写聊天室代码居然少得可怜,这个不佩服node都不行, ...
- chrome浏览器下用jQuery的load函数来跨域加载页面,响应状态status为(canceled)是什么情况? JSON和JSONP,也许你会豁然开朗,含jQuery用例
http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html 问题来源:http://q.cnblogs.com ...
- Visual Studio下使用jQuery的10个技巧
广泛流行的jQuery是一个开源的,跨浏览器和兼容CSS 3的JavaScript库,你可以用它简化你的JavaScript编码任务和操作(添加,编辑和删除)HTML内容中的DOM元素,本文介绍10个 ...
- cheerio ==> node中的jquery
三.cheerio ==> node中的jquery https://www.npmjs.com/package/cheerio $ npm install cheerio -- save 1 ...
- 【Todo】React & Nodejs学习 &事件驱动,非阻塞IO & JS知识栈:Node为主,JQuery为辅,Bootstrap & React为辅辅,其他如Angular了解用途即可
JS知识栈:Node为主,JQuery为辅,Bootstrap & React为辅辅,其他如Angular了解用途即可 今天在学习ReactJS和NodeJS,看到关于ReactJS的这篇文章 ...
- Node.js配合jQuery UI autocomplete的应用
Node.js擅长的领域为: 不需要很多运算 吞吐量要求高 进消息轻并且要求快 出消息轻并且要求快 网上的例子都是socket.io的,我一直在想到底能用在什么地方?根据node.js的优点(擅长领域 ...
- node下的跨域传递cookie
研究背景: 最近有一位朋友找工作,需要面试,涉及到面试就涉及面试题,于是我想起来鄙人之前面试被问到的一个跨域传递cookie的问题.搜索了相关资料,但自己不敲一下肯定是不足以让人信服的. 我用node ...
- IE下使用jquery失效的问题(转载)
1,然后各种调试,最后发现:把ie把关了,再打开$.get().会调用,再第二次调用的用的时候发现又不行了.于是我推断是ie缓存的问题,把ie缓存清除后,果然可以了.但是客户不可能知道清理缓存.所以只 ...
随机推荐
- UEditor常用设置函数记录
在线文档对UEditor说明不够全面,收集了一些常用的方法和基本设置,以供参考. 1.创建编辑器 UE.getEditor('editor', { initialFrameWidth:"10 ...
- php 获取远程图片长宽和大小
/***获取远程图片的宽高和体积大小 ** @param string $url 远程图片的链接 * @param string $type 获取远程图片资源的方式, 默认为 curl 可选 frea ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。
使用VMW安装四台CentOS-7-x86_64-DVD-1804.iso虚拟机: 计划配置三台centos虚拟机: master:192.168.0.120 slave1:192.168.0.121 ...
- IIS 7.5: HOW TO ENABLE TLS 1.1 AND TLS 1.2
In IIS 7.5, which is installed on Windows 2008 R2 servers, only SSL 3.0 and TLS 1.0 are enabled for ...
- JavaScript 上下文环境和作用域,以及 call、apply 和 bind【转载+翻译+整理】
--看到这篇文章,翻译国外的,虽说写得有点矫情,但总体来看,还是相当不错的- 本文内容 我在哪儿?你又是谁 ? this? 用 apply 和 call 掌控上下文环境 bind 之美 本文将说明上下 ...
- Discuz常见小问题-如何人为地添加用户并分配小组
进入后台,在用户-添加用户中可以人为添加用户并分配权限
- 今天发现一个神奇的网站Greasy Fork
Greasy Fork这个网站的神奇之处在于,提供了各路大神编写的脚本,可以在浏览器中实现各种神奇的功能,比如这个: 我下载使用了,确实好用,什么腾讯视频vip,爱奇艺视频vip,统统可以观看~ 并且 ...
- NetCore中使用DynamicExpresso、Z.Expressions、LambdaParser进行安字符串求值
例子如下: Z.Expressions从2.0开始支持了NetCore,但是收费的.其它两者免费.建议使用DynamicExpresso,免费而且速度快.LambdaParser目前支持太少. sta ...
- innosetup完整脚本
#define MyAppName "Somarto"#define MyAppVersion "1.0.0"#define MyAppPublisher &q ...
- ajax 二级联动与springmvc 交互
html 测试可以使用 <div class="pageButton" style="height: 60px;margin: 10px;line-height: ...