ngtwewy

安装npm install @hapi/joi --save 用法示例const Joi = require('@hapi/joi'); const schema = Joi.object({ username: Joi.string() .alphanum() .min(3) .max(30) .required(), password: Joi.string() .pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')), repeat_password: Joi.ref('password'), access_token: [

2020-07-05    Node.js   
ngtwewy

遍历目录遍历目录是操作文件时的一个常见需求。比如写一个程序,需要找到并处理指定目录下的所有JS文件时,就需要遍历整个目录。递归算法遍历目录时一般使用递归算法,否则就难以编写出简洁的代码。递归算法与数学归纳法类似,通过不断缩小问题的规模来解决问题。以下示例说明了这种方法。function factorial(n) { if (n === 1) { return 1; } else { return n * factorial(n - 1); } } 上边的函数用于计算 N 的阶乘(N!)。可以看到,当 N 大于 1 时,问题简化为计算 N 乘以 N-1 的阶乘。当 N 等于 1 时

2020-04-06    Node.js   
ngtwewy

Transaction是Sequelize中用于实现事务功能的子类,通过调用Sequelize.transaction()方法可以创建一个该类的实例。在Sequelize中,支持自动提交/回滚,也可以支持用户手动提交/回滚。 事务的使用 1.1 受管理的事务(auto-callback) 1.2 不受管理的事务(then-callback) 1.3 并行/部分事务 1.4 隔离级别 1.5 选项参数 Transaction类 2.1 访问与初始化 2.2 实例方法 1. 事务的使用 Sequelize有两种使用事务的方式:

2019-07-17    Node.js   
ngtwewy

一,空格与格式 缩进 采用2个空格缩进,而不是tab缩进。 空格在编辑器中与字符是等宽的,而tab可能因编辑器的设置不同。2个空格会让代码看起来更紧凑、明快。 变量声明 永远用var声明变量,不加var时会将其变成全局变量,这样可能会意外污染上下文,或是被意外污染。 在ECMAScript 5的strict模式下,未声明的变量将会直接抛出ReferenceError异常。 需要说明的是,每行声明都应该带上var,而不是只有一个var,示例代码如下: var assert = require('assert'); var fork = require('child_proce

2019-07-17    Node.js   
ngtwewy

安装 npm install --save-dev morgan 使用 var express = require('express'); var app = express(); // 设置日志 var fs = require("fs"); var path = require('path'); var morgan = require('morgan'); // create a write stream (in append mode) var accessLogStream = fs.createWriteStream(path.join(__dirn

2019-07-02    Node.js   
ngtwewy

安装使用progress-stream 即可 var fs = require('fs'); var express = require('express'); var multer = require('multer'); var progressStream = require('progress-stream'); var app = express(); var upload = multer({ dest: 'upload/' }); app.post('/upload', function (req, res, next) { // 创建progress

2019-06-25    Node.js   
ngtwewy

File System(文件系统)NodeJS 通过 fs 内置模块提供对文件的操作。fs 模块提供的 API 基本上可以分为以下三类:1,文件属性读写。其中常用的有 fs.stat、fs.chmod、fs.chown 等等。2,文件内容读写。其中常用的有 fs.readFile、fs.readdir、fs.writeFile、fs.mkdir 等等。3,底层文件操作。其中常用的有 fs.open、fs.read、fs.write、fs.close 等等。官方文档: http://nodejs.org/api/fs.html异步和同步Node.js 文件系统(fs 模块)模块中的方法均有异步和

2019-06-19    Node.js   
ngtwewy

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。在引入 TypedArray 之前,JavaScript 语言没有用于读取或操作二进制数据流的机制。 Buffer 类是作为 Node.js API 的一部分引入的,用于在 TCP 流、文件系统操作、以及其他上下文中与八位字节流进行交互。现在可以使用 TypedArray, Buffer 类以更优化和更适合 Node.js 的方式实现了 Uint8Array API。Buff

2019-06-19    Node.js   
ngtwewy

数据采集时,有时候需要延时操作,实现类似sleep()这样的函数: function sleep(ms) { return new Promise((resolve) => { setTimeout(() => { resolve('sleep for ' + ms + ' ms'); }, ms); }); } async function main() { await sleep(1500); ... }

2019-06-04    Node.js   
ngtwewy

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

2019-05-26    Node.js   
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   
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|e

2019-04-25    Node.js   
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   
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 the s

2019-04-20    Node.js   
ngtwewy

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

2019-04-19    Node.js   
随机推荐
PHP把时间转换成几分钟前、几小时前、几天前
Windows Firewall and secure FTP (FTPS) traffic
MySQL从一个表往另一个表中导出数据,并处理时间格式
git fetch与git pull的区别
我眼中的前端框架jQuery,Angular,React,Vue——以及我看前端架构
阐述二维码的原理以及使用google api和PHP QR Code来生成二维码
PDO 使用预处理 LIMIT
vue-router的几种使用方式
npm国内镜象设置的三种方法
修改Windows系统同步时间的频率和服务器