最终我选择使用了 sharp https://github.com/lovell/sharp基本用法:var images = require("images"); images("input.jpg") //Load image from file //加载图像文件 .size(400) //Geometric scaling the image to 400 pixels width //等比缩放图像到400像素宽 .draw(images("l
admin 2020-12-14 Node.js 1150
Scoped Packages 范围包假如我们有一个项目需要使用 npm init 进行初始化,但是在 npm 注册的包名是唯一的,好名字都被别人起了,怎么办呢?之前很多人都是使用类似 koa-router、vue-cli 中线的方式。 还有类似这样的:@koa/router,这种形式叫做 Scoped Packages 范围包。@somescope/somepackagename每个npm用户可以有自己的 somescope使用的时候大概如下:var router = require("@koa/router"); 参考https://nitayneeman.com/posts/under
admin 2020-12-09 Node.js 945
安装包的时候提示如下:gyp WARN EACCES user "nobody" does not have permission to access the dev dir 或者gyp WARN EACCES user "root" does not have permission to access the dev dir 解决方法:npm install xxxx -g --unsafe-perm 有时候可以先执行:npm cache clean --force 参考:https://javascript.net.cn/article?id=657
admin 2020-11-02 Node.js 1134
process.env 介绍process(进程)对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.js 应用程序始终是可用的,无需使用 require()。process.env 属性会返回包含用户环境的对象。文档:http://nodejs.cn/api/process.html#process_process_env很明显的一个使用场景,依靠这个我们就可以给服务器上打上一个标签。这样的话,我们就能根据不同的环境,做一些配置上的处理。如何配置环境变量Windows临时配置直接在cmd环境配置即可,查看环境变量,添加环境变量
admin 2020-10-26 Node.js 1932
负载均衡的一般概念负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。一个没有负载均衡的 web 架构类似下面这样:在这里用户是直连到 web 服务器,如果这个服务器宕机了,那么用户自然也就没办法访问了。另外,如果同时有很多用户试图访问服务器,超过了其能处理的极限,就会出现加载速度缓慢或根本无法连接的情况。而通过在后端引入一个负载均衡器和至少一个额外的 web 服务器,可以缓解这个故障。通常情况下,所有的后端服务器会保证提供相同的内容,以便用户无论哪个服务器响应,都能收到一致的内容。从图里可以看到,用户访问负载均衡器,再由
admin 2020-10-13 Node.js 1654
PM2 配置文件: 生态系统文件 ecosystem.config.js当在多个服务器上部署或使用多个CLI参数时,使用生态系统文件来替代命令行启动应用,将会更加方便。生态系统文件的目的是收集应用所有的配置选项和环境变量。创建一个 ecosystem.config.js:pm2 init 这个命令会生成:module.exports = { apps: [{ script: 'index.js', watch: '.' }, { script: './service-worker/', watch: ['./service-worker'] }],
admin 2020-10-13 Node.js 3785
pm2 的日志模块默认是每一个服务进程都分配两个默认的日志文件,普通日志和错误日志。这两个日志文件存放于/root/.pm2/logs中,如果pm2管理5个服务,那么该文件夹下总共有10个日志文件,并且随着时间不断增加,很容易就会产生很多个上g的日志文件,导致了服务器的磁盘空间不足的问题清理日志在 pm2 运行时,如果手动删除日志文件,那么后续的日志不会被写入,需要重启pm2的进程。使用 pm2 flush 可以清理日志不需要重启。查看实时日志pm2 logs # only app logs pm2 logs app 日志文件配置可以自定义日志文件位置:module.exports =
admin 2020-10-13 Node.js 1351
简介:一个轻量级的参数验证工具,国人开发,非常符合我的口味。安装:npm install parameter --save 使用方法:constructor([options]) - new Class Parameter instanceoptions.translate - translate functionoptions.validateRoot - config whether to validate the passed in value must be a object, default to false.options.convert - convert primitive
admin 2020-10-13 Node.js 1670
简介触发器(Emitter)类型的对象会触发命名事件来调用函数(又称监听器,Listener)。所有能触发事件的对象都是 EventEmitter 类的实例。 这些对象有一个 eventEmitter.on() 函数,用于将一个或多个函数绑定到命名事件上。 事件的命名通常是驼峰式的字符串。当 EventEmitter 对象触发一个事件时,所有绑定在该事件上的函数都会被同步地调用。 被调用的监听器返回的任何值都将会被忽略并丢弃。例子,一个简单的 EventEmitter 实例,绑定了一个监听器。 eventEmitter.on() 用于注册监听器, eventEmitter.emit() 用于触
admin 2020-10-11 Node.js 861
寻找轻量级的验证器,可以看下 https://github.com/node-modules/parameterhttps://javascript.net.cn/article?id=732安装npm install @hapi/joi --savenpm install joi --save 用法示例const Joi = require('@hapi/joi'); const schema = Joi.object({ username: Joi.string() .alphanum() .min(3) .max(30) .requir
admin 2020-07-05 Node.js 1572
安装npm install -g browser-sync 监控静态网站如果您想要监听.css文件, 您需要使用服务器模式。 BrowserSync 将启动一个小型服务器,并提供一个URL来查看您的网站。// --files 路径是相对于运行该命令的项目(目录) browser-sync start --server --files "css/*.css" // 监听css和html文件 browser-sync start --server --files "css/*.css, *.html" //或者 browser-sync start --server --files "**
admin 2020-05-29 Node.js 936
简介:Koa.js 的路由安装:npm i @koa/router API参考基本用法:const Koa = require('koa'); const Router = require('@koa/router'); const app = new Koa(); const router = new Router(); router.get('/', (ctx, next) = { // ctx.router available }); app .use(router.routes()) .use(router.allowedMethods()); 路由
admin 2020-05-01 Node.js 818
遍历目录遍历目录是操作文件时的一个常见需求。比如写一个程序,需要找到并处理指定目录下的所有JS文件时,就需要遍历整个目录。递归算法遍历目录时一般使用递归算法,否则就难以编写出简洁的代码。递归算法与数学归纳法类似,通过不断缩小问题的规模来解决问题。以下示例说明了这种方法。function factorial(n) { if (n === 1) { return 1; } else { return n * factorial(n - 1); } } 上边的函数用于计算 N 的阶乘(N!)。可以看到,当 N 大于 1 时,问题简化为计算 N 乘以 N-1
admin 2020-04-06 Node.js 913
安装 node-sasssudo npm i -g node-sassnode-sass 安装失败:gyp ERR! stack Error: EACCES: permission denied, mkdir '.../node-sass/build'或gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/node-sass/.node-gyp'gyp ERR! System Darwin 18.7.0使用 --unsafe-per
admin 2020-02-18 Node.js 1834
Transaction是Sequelize中用于实现事务功能的子类,通过调用Sequelize.transaction()方法可以创建一个该类的实例。在Sequelize中,支持自动提交/回滚,也可以支持用户手动提交/回滚。1. 事务的使用Sequelize有两种使用事务的方式:基于Promise结果链的自动提交/回滚另一种是不自动提交和回滚,而由用户控制事务 1.1 受管理的事务(auto-callback)受管理的事务会自动提交或回滚,你可以向sequelize.transaction方法传递一个回调函数来启动一个事务。需要注意,在这种方式下传递给回调函数的transaction会返回一个
admin 2019-07-17 Node.js 1815
一,空格与格式 缩进 采用2个空格缩进,而不是tab缩进。 空格在编辑器中与字符是等宽的,而tab可能因编辑器的设置不同。2个空格会让代码看起来更紧凑、明快。 变量声明 永远用var声明变量,不加var时会将其变成全局变量,这样可能会意外污染上下文,或是被意外污染。 在ECMAScript 5的strict模式下,未声明的变量将会直接抛出ReferenceError异常。 需要说明的是,每行声明都应该带上var,而不是只有一个var,示例代码如下: var assert = require('assert'); var fork = require('child_proce
admin 2019-07-17 Node.js 958
安装 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
admin 2019-07-02 Node.js 992
安装使用 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) { // 创建progre
admin 2019-06-25 Node.js 1965
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 等等。接口的三种风格:异步、同步和期约Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.
admin 2019-06-19 Node.js 829
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。在引入 TypedArray 之前,JavaScript 语言没有用于读取或操作二进制数据流的机制。 Buffer 类是作为 Node.js API 的一部分引入的,用于在 TCP 流、文件系统操作、以及其他上下文中与八位字节流进行交互。现在可以使用 TypedArray, Buffer 类以更优化和更适合 Node.js 的方式实现了 Uint8Array API。Buff
admin 2019-06-19 Node.js 825
随机推荐
二分查找法
Debian11 安装笔记4:安装常用软件
JavaScript 和 CSS 检测横屏适配
WordPress 插件路径相关
Node.js 控制台进度条实现原理
TypeScript 和 Koa 实践
WordPress 设置菜单
Photoshop 使用插件支持 webp 格式的文件