数据采集时,有时候需要延时操作,实现类似sleep()这样的函数: function sleep(ms) { return new Promise((resolve) = { setTimeout(() = { resolve('sleep for ' + ms + ' ms'); }, ms); }); } async function main() { await sleep(1500); ... }
admin 2019-06-04 Node.js 1143
一,什么是单元测试单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。 二,为什么要进行单元测试先说为什么浏览器可以直接访问,但为什么还要单元测试?第一浏览器访问其实是手工操作,简单的页面当然访问一下就好了,可是如果你要测的功能很复杂咋办?你要是忘了
admin 2019-05-26 Node.js 1019
重写了爬虫,程序逻辑如下: 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
admin 2019-05-03 Node.js 981
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|
admin 2019-04-25 Node.js 1143
安装 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
admin 2019-04-25 Node.js 2450
一,简介ORM 是"对象-关系映射"(Object/Relational Mapping) 的缩写,就是通过实例对象的语法,完成关系型数据库的操作的技术。面向对象编程把所有实体看成对象(object),关系型数据库则是采用实体之间的关系(relation)连接数据。很早就有人提出,关系也可以用对象表达,这样的话,就能使用面向对象编程,来操作关系型数据库。ORM 把数据库映射成对象:数据库的表(table) -- 类(class) 记录(record,行数据)-- 对象(object) 字段(field)-- 对象的属性(attribute) 二,举例举例来说,下面是一行 SQL 语句:
admin 2019-04-19 Node.js 2165
简介:Electron 可以让你使用纯 JavaScript 调用丰富的原生(操作系统) APIs 来创造桌面应用。 你可以把它看作一个 Node. js 的变体,它专注于桌面应用而不是 Web 服务器端。这不意味着 Electron 是某个图形用户界面(GUI)库的 JavaScript 版本。 相反,Electron 使用 web 页面作为它的 GUI,所以你能把它看作成一个被 JavaScript 控制的,精简版的 Chromium 浏览器。从开发的角度来看, Electron application 本质上是一个 Node. js 应用程序。 与 Node.js 模块相同,应用的入口是
admin 2019-04-02 Node.js 839
在以前,使用 create-vite-app 创建一个vue项目:npm install -g create-vite-app create-vite-app my-app 使用 npx 创建一个 vue 项目:npx create-vite-app my-app 这条命令会临时安装 create-vite-app 包,命令完成后create-vite-app 会删掉,不会出现在 global 中。npx 会帮你执行依赖包里的二进制文件。比如之前我们这样写:npm i -D webpack ./node_modules/.bin/webpack -v 有了 npx,你只需要这样:np
admin 2019-03-12 Node.js 964
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(b
admin 2018-08-25 Node.js 1315
编写爬虫时,需要HTMLParser解析HTML,HTML本质上是XML的子集,但是HTML的语法没有XML那么严格,所以不能用标准的DOM或SAX来解析HTML。现在流行很多解析器,综合一下比较看好 cheerio 和 jsdom。 cheerio简单好用速度快,JSDOM的目标是提供一个我们在浏览器里面看到的相同的 DOM 环境。支持最新的javascript选择器。 安装npm install cheerio HTML示例 ul id=“fruits” li class=“apple” Apple /li li class=“orange” Orange /li
admin 2018-08-25 Node.js 1053
// 加载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
admin 2018-08-25 Node.js 930
将图片文件转换为base64编码并载入浏览器能够减少http请求数,但是增大了js或html文件的体积,如果图片在项目中的重用度较高,那么每处引用都会生成base64编码,造成了代码的冗余。通过http请求载入到浏览器的文件可以缓存到本地,当图片在项目中的重用度较高时,会为图片的访问增加缓存的便利性,下次访问更快。因此要平衡考虑。 Install npm install --save-dev url-loader Usage url loader与file loader的工作方式相似,但如果文件的体积比byte limit小,就能返回Data Url。 需要用一个查询参数(qu
admin 2018-08-23 Node.js 856
一,删除Node.js的方法卸载node 依次在终端执行下面的脚本sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* sudo rm -rf /usr/local/include/node /Users/$USER/.npm sudo rm /usr/local/bin/node sudo rm /usr/local/share/man/man1/node.1 sudo rm /usr/local/lib/
admin 2018-08-22 Node.js 934
PM2 简介pm2 是一个带有负载均衡功能的Node应用的进程管理器。当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。命令详解:安装npm install -g pm2用法$ npm install pm2 -g # 命令行安装 pm2 $ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js # 也可以把'max' 参数传递给 start # 正确的进程数目依赖于Cpu的核心数目$ pm2 start app.js --name my-api # 命名进程$ pm2 list #
admin 2018-04-06 Node.js 2333
工作进程:var http = require('http'); var port = Math.round((1 + Math.random()) * 1000); http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }).listen(port, '127.0.0.1'); console.log("port: ", port); 主进程:var { fork } = require('chi
admin 2018-02-28 Node.js 778
模块检查更新 生成工程后,一段时间很多模块都有更新,如何把工程中的模块都更新到最新的呢。 npm update一次只能更新一个包 首先我们先通过命令查看下需要更新的版本: npm outdated npm outdated 会列出所有可更新的 node_modules,如下: Package Current Wanted Latest Location autoprefixer 6.7.2 6.7.2 7.1.2 vue-test ba
admin 2017-12-19 Node.js 909
前段时间升级了Node.js,现在执行`npm install`的时候,就会在当前目录生成一个`package-lock.json`的文件。 package.json里面定义的是版本范围(比如^1.0.0),具体跑npm install的时候安的什么版本,要解析后才能决定,这里面定义的依赖关系树,可以称之为逻辑树(logical tree)。node_modules文件夹下才是npm实际安装的确定版本的东西,这里面的文件夹结构我们可以称之为物理树(physical tree)。安装过程中有一些去重算法,所以你会发现逻辑树结构和物理树结构不完全一样。 packag
admin 2017-12-19 Node.js 816
Having the same issue on npm 5.4.2. Initially I tried npm cache clear --force but it did not resolve my issue. Removing package-lock.json didn't either. Removing both node_modules and package-lock.json worked: rm -rf node_modules/ rm package-lock.json # Install and add the package
admin 2017-12-19 Node.js 1294
看字面意思大概是package.json里缺少repository字段,也就是说缺少项目的仓库字段 { ... "repository": { "type": "git", "url": "http://baidu.com" }, ... } 但作为测试项目或者练习用,只需在package.json里面做如下配置即可: { ... "private"
admin 2017-12-19 Node.js 1660
说明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文件夹会自
admin 2017-11-29 Node.js 1152
随机推荐
使用 svg 作为背景图片
WordPress 添加自定义接口
WordPress 使用 shortcode() 增加编辑器功能
WordPress 获取当前主题文件夹的路径
WP_Query 函数
WordPress关闭自动草稿
Linux 网络流量监控 iftop
Flame 插件