ngtwewy

一,什么是单元测试 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。 二,为什么要进行单元测试 先说为什么浏览器可以直接访问,但为什么还要单元测试?第一浏览器访问其实是手工操作,简单的页面当然访问一下就好了,可是如果你要测的功能很复杂

2019-05-26    Node.js    395
ngtwewy

重写了爬虫,程序逻辑如下: 1,爬虫抓取文章列表第一页。 2,获取文章列表。 3,遍历文章。 4,把文章列表中文章的缩略图下载保存。 5,把文章内容中的图片全部下载保存,并用图片新路径,替换文章内容中的图片地址。 6,保存文章内容到数据库。 7,处理完文章列表后,递归执行下一页文章列表。 var http = require('http'); var http = require('https'); var fs = require('fs'); var cheerio = require('cheerio'); var po

2019-05-03    Node.js    360
ngtwewy

https://github.com/skaterdav85/validatorjs 这个貌似是github上星数,最高的验证器了。 果然没有让我失望,很类似Laravel和ThinkPHP中的数据验证器。唯一的缺陷,是没有场景这种功能。 let Validator = require('validatorjs'); let data = { name: '', myemail: 'johndoe@sss.ss', age: 12 }; let rules = { name: 'required', myemail: 'required|

2019-04-25    Node.js    643
ngtwewy

安装 npm install i18n --save i18n.js var i18n = require('i18n'); i18n.configure({   locales: ['en-US', 'zh-CN'],  // setup some locales - other locales default to en_US silently   // defaultLocale: 'zh-CN',   defaultLocale: 'en-US',   directory: __dirname + '/locales',     updateFiles: fal

2019-04-25    Node.js    1312
ngtwewy

在前端,可以考虑使用 Validate.js ,后端使用 express-validator。 https://github.com/chriso/validator.js express-validator https://express-validator.github.io/docs/check-api.html https://github.com/express-validator/express-validator Validator Description contains(str, seed) check if th

2019-04-20    Node.js    581
ngtwewy

一,简介ORM 是"对象-关系映射"(Object/Relational Mapping) 的缩写,就是通过实例对象的语法,完成关系型数据库的操作的技术。面向对象编程把所有实体看成对象(object),关系型数据库则是采用实体之间的关系(relation)连接数据。很早就有人提出,关系也可以用对象表达,这样的话,就能使用面向对象编程,来操作关系型数据库。ORM 把数据库映射成对象:数据库的表(table) --> 类(class) 记录(record,行数据)--> 对象(object) 字段(field)--> 对象的属性(attribute) 二,举例举例来说,下面是一行 SQL

2019-04-19    Node.js    1271
ngtwewy

简介:Electron 可以让你使用纯 JavaScript 调用丰富的原生(操作系统) APIs 来创造桌面应用。 你可以把它看作一个 Node. js 的变体,它专注于桌面应用而不是 Web 服务器端。这不意味着 Electron 是某个图形用户界面(GUI)库的 JavaScript 版本。 相反,Electron 使用 web 页面作为它的 GUI,所以你能把它看作成一个被 JavaScript 控制的,精简版的 Chromium 浏览器。从开发的角度来看, Electron application 本质上是一个 Node. js 应用程序。 与 Node.js 模块相同,应用的入口是

2019-04-02    Node.js    310
ngtwewy

2020年开始,本模块貌似要停止维护了 https://github.com/request/request,node.js 的http模块就已经很好了。这篇就先介绍一个Node.js的模块——request。有了这个模块,http请求变的超简单。var request = require('request'); request('http://www.google.com', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) //

2018-08-25    Node.js    811
ngtwewy

编写爬虫时,需要HTMLParser解析HTML,HTML本质上是XML的子集,但是HTML的语法没有XML那么严格,所以不能用标准的DOM或SAX来解析HTML。 现在流行很多解析器,综合一下比较看好 cheerio 和 jsdom。 cheerio简单好用速度快,JSDOM的目标是提供一个我们在浏览器里面看到的相同的 DOM 环境。支持最新的javascript选择器。 安装 npm install cheerio HTML示例 Apple Orange Pear 加载HTML var cheerio = require(

2018-08-25    Node.js    410
ngtwewy

// 加载http模块 var http = require('http'); // Cheerio 是一个Node.js的库, 它可以从html的片断中构建DOM结构,然后提供像jquery一样的css选择器查询 var cheerio = require('cheerio'); // 定义爬虫的目标地址 var url = 'http://www.imooc.com/learn/348'; http.get(url, function (res) { var html = ''; // 获取页面数据 res.on('data', function (d

2018-08-25    Node.js    353
ngtwewy

第一步,先查看本机node.js版本:node -v第二步,清除node.js的cache:sudo npm cache clean -f第三步,安装 n 工具,这个工具是专门用来管理node.js版本的,别怀疑这个工具的名字,是他是他就是他,他的名字就是 "n"sudo npm install -g n第四步,安装最新版本的node.jssudo n stable第五步,再次查看本机的node.js版本:node -v第六步,更新npm到最新版:$ sudo npm install npm@latest -g第七步,验证node -vnpm -v  删除Node.js的方法卸载node 依次

2018-08-22    Node.js    349
ngtwewy

PM2 简介pm2 是一个带有负载均衡功能的Node应用的进程管理器。当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。Windows 安装 PM2 服务借助于pm2-windows-service 可以把pm2以windows服务运行。以服务运行的好处就是,即时用户注销也,pm2也会在后台运行。安装:npm i pm2 -g npm i -g pm2-windows-service #添加系统环境变量 PM2_HOME=D:\.pm2#右键 [我的电脑] - [属性] - [高级系统设置] - [环境变量] - 新建 [系统变量] #

2018-04-06    Node.js    1533
ngtwewy

说明multer是express官方推荐的文件上传中间件,它是在busboy的基础上开发的。目前multer的最新版本为:~1.1.0。本文所有代码段均使用此版本。multer的官方地址:https://github.com/expressjs/multer配置在nodejs下的package.json中添加multer依赖,运行加载依赖库。新建multerUtil.js,var multer=require('multer'); var storage = multer.diskStorage({ //设置上传后文件路径,uploads文件夹会自

2017-11-29    Node.js    629
ngtwewy

简介MD5(Message-Digest Algorithm)是计算机安全领域广泛使用的散列函数(又称哈希算法、摘要算法),主要用来确保消息的完整和一致性。常见的应用场景有密码保护、下载文件校验等。本文先对MD5的特点与应用进行简要概述,接着重点介绍MD5在密码保护场景下的应用,最后通过例子对MD5碰撞进行简单介绍。特点运算速度快:对jquery.js求md5值,57254个字符,耗时1.907ms输出长度固定:输入长度不固定,输出长度固定(128位)。运算不可逆:已知运算结果的情况下,无法通过通过逆运算得到原始字符串。高度离散:输入的微小变化,可导致运算结果差异巨大。弱碰撞性:不同输入的

2017-11-03    Node.js    304
ngtwewy

1、普通字符串//编码new Buffer(String).toString('base64');//解码new Buffer(base64Str, 'base64').toString();2、十六进制Hex//编码new Buffer(String, 'base64').toString('hex');//解码new Buffer(base64Str, 'hex').toString('utf8');3、图片const fs = require('fs');//编码functio

2017-11-03    Node.js    349
ngtwewy

以前,Promise库有promise,Q,bluebird等,后来,ES6中也新增了原生Promise。Promiss/A+规范 https://promisesaplus.com/An open standard for sound, interoperable JavaScript promises—by implementers, for implementers.一个健全的通用JavaScript Promise开放标准,源于开发者,并归于开发者function test(resolve, reject) { var time = Math.random(); i

2017-10-29    Node.js    342
ngtwewy

##场景远古时代我们在编写express后台,经常要有许多异步IO的处理。在远古时代,我们都是用chunk函数处理,也就是我们最熟悉的那种默认第一个参数是error的函数。我们来模拟一个Mongo数据库的操作,感受一下。mongoDb.open(function(err, db){ if(!err){ db.collection("users", function(err, collection){ if(!err){ let person = {name: "yika", age:

2017-10-29    Node.js    325
ngtwewy

针对开发者需要注意的问题对于一个express应用我们,一般有以下的几种方法来提升应用的运行效率以及响应率。1. 使用gzip压缩2. 代码中不要使用同步函数3. 使用中间件处理静态文件4. 合理的日志处理方法5. 正确的处理异常以下我们将分别对于每个子项目进行展开分析。1.使用gzip压缩使用gzip压缩可以显著的减小响应包的大小,这样就提升了客户端的响应速度,我们可以通过使用compression中间件来处理gzip的压缩。对于一个大量用户的网站,最佳的方式是在反向代理端设置压缩方式。可以参考我的另一篇文章专门介绍如何配置nginx来处理压缩和静态文件的。这样的话,我们在代码端

2017-10-26    Node.js    313
随机推荐
ThinkPHP5.* 远程代码执行高危漏洞的修复
Git 创建分支最佳实践
CentOS 磁盘空间相关命令
CentOS 8 安装 MySQL 5.7 或 MySQL 8
CSS3 counter 的用法
包含汉字元素的PHP数组转成json字符串
Photoshop 手绘常用快捷键
修改macOS自带的PHP版本
Windows 和 macOS 上使用ffmpeg 进行视频切片
解决jquery mobile的header和footer在点击屏幕的时候消失的办法