自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (4)
  • 收藏
  • 关注

原创 Node.JS实战60:解除“封印”!给Node更多的内存。

这一节,不讲编程,谈点很有用的知识!默认情况下当用node启动我们的程序时,可用的最大内存量是512MB。如果程序运行时使用的内存量超过这个值,就会报错。本文,告诉大家如何解除这个封印,给Node程序更多的可用内存。如上图中,为了展示内存不足的错误,我们给node启动加了一个参数:--max_old_space_size=1,含意为:只给程序1MB的内存。被启动的是ShareW...

2020-01-30 17:27:25 1224

原创 电脑总蓝屏,可能是什么原因?怎么解决?

问题:台式电脑,每天蓝屏好几次,如下图。可能是什么原因,怎么解决?回答:可能的原因很多,比如:1、硬件;硬件如果接触不良,常见如内存、显卡等,或是主板出现问题,都可能引起异常。但这种可能性一般较少,放到最后排查,不过,要是硬件出了问题,电脑基本没法用了。只能拿到专业的维修店修理。2、系统;如果系统出现问题,会经常蓝屏的,系统也最容易出问题。各种软件安装的...

2020-01-30 15:36:03 715

原创 Node.JS实战59:负载均衡的实现。

在大型网络结构中,或流量大的网站上,负载均衡是必备的。用于实现流量负载、高可用。负载均衡常用的是NGINX、HAProxy、F5等。而我们的Node.JS开发,实现一个负载均衡,是不那么困难的。本文将实现一个负载均衡系统,而且是一个高端的动态负载均衡系统。它将备以下功能:1、动态添加负载;2、自动、随机选择负载。使用效果:1、添加负载:密码的设置是为...

2020-01-30 09:09:31 1312

原创 Node.JS实战58:写一套反爬虫系统!

爬虫,网络安全最大的威胁之一!根据爬取数据类型而分,爬虫有不少种类,比如爬取Email地址的、爬取商品价格的、爬取图片的,而最多的是爬取内容的,内容数据爬虫是为泛滥的!爬虫让很多人对其深感苦恼,今天的Node.JS实战,将实现一种防护性能很强的反爬虫系统。首先展示防护效果,然后付上完整代码,以了解实现方法。防护效果展示根据两个核心思路进行效果展示如下:1、字体加密创...

2020-01-29 10:28:28 1095

原创 Node.JS实战57:给图片加水印。

很多时候,为了保护版权、保护原创,或是宣传的需要,我们需要给图片加水印的。Node.JS中给图片加水印是很简单的,通过一个三方库:images可以很方便的实现。本示例有三个文件,一个程序文件、一张图片、一个水印图片:图片可以是jpg或png,水印需要是PNG,因为水印可能要做个圆角或其它部分可能需要透明的形状。实现代码:var images = requi...

2020-01-21 17:41:30 1155

原创 Node.JS实战56:编写一个真正的模块,能发布到NPM上的模块!

NPM是Node的包管理工具,Node的所有三方模块,都在NPM上。今天的文章,是重量级的。展示如何写一个真正的模块,并发布到NPM,可以让他人使用自己的模块!首先是模块。要发布到NPM,模块本身真是够份量的,实现了某个功能,或能真正解决某些问题,或在某些场景下能帮到他人。模块:express-waf-middleware本文的模块,来之前于前面文章讲到过的一个思路:给ex...

2020-01-19 12:15:30 254

原创 Node.JS实战55:REPL,知道它强大,但不知道它竞有这么强大!

在Node中,有一个神器:REPL,全称是:Read Eval Print Loop。即:交互式解释器。从名称上,看不出它能干什么。那么,我们直接从一个示例来看吧:本文共需两个程序:首先是test55.js,它用以前文章中的一个例程代码,再加一个REPL服务器功能:var http = require("http");var test="this is a test";...

2020-01-19 12:02:49 269

原创 Node.JS实战54:对Node程序进行性能分析。

对于小程序而言,性能分析无关紧要。但对于大程序,性能分析则非常重要。通过性能分析,可以分析出哪部分功能、哪部分代码消耗了时间。对于想要进行代码优化,性能分析是必须的。如何进行性能分析?下面展示:首先写一个例程:function makeLoad(){ for(var i=0; i<100000; i++);}function logSomeThing(...

2020-01-19 11:54:49 283

原创 Node.JS实战53:调试node程序。

当需要检测问题、调试,甚至想要一步步的运行代码时,使用调试器是最好的办法。Node有内置的调试器:debug,而且颇强大,可以下断点、查看变量、单步执行等等。下面通过一段示例,展示其用法:var a = 1; function b(){ a = 2; } b(); a = 3; a = 4; debugger; a = 5; var c; a = 6; console....

2020-01-19 10:05:23 204

原创 Node.JS实战52:捕获错误之“未捕获的异常”。

造成Node程序崩溃的,几乎都是“未捕获的异常”。当一个“未捕获的异常”出现时,Node会默认的终止进程的执行。其实process.on()方法可以捕获进程级的异常,如:var http = require("http");var server = http.createServer(function(req,res){ response.end("Hello JShama...

2020-01-19 09:50:59 578

原创 Node.JS实战51:捕获错误之“错误参数”。

先来展示一个示例:var fs = require("fs");fs.readFile("./no_file.txt",function(err,buf){ var data = buf.toString(); //这一行会出错});执行这个程序,如果当下目录下不存在no_file.txt文件,那么必然会发生错误的:对于这处错误,该如何处理呢?当然可以这样:...

2020-01-19 09:38:59 221

原创 Node.JS实战50:捕获错误之“错误事件”。

在Node中,错误事件可以在任意继承EventEmitter的对像中触发,这点很重要。如果我们继承了一个事件,而没有给它设定错误处理函数,则错误发生是不可避免的。例程:var Event_Emitter = require("events").EventEmitter;var ee = new Event_Emitter();ee.emit("error",new Error...

2020-01-19 09:32:40 350

原创 Node.JS实战49:捕获错误之隐式异常。

与上文相对应,隐式异常指错误不是由throw抛出的异常。最常见的是ReferenceError错误:变量或属性的引用未找到时会触发这个错误。例程:function test(err,data){ console.log(dat) //这句会发生错误}test();运行效果:另一个很常见的类似情况是:SyntaxError,比如用JSON.parse解析无效...

2020-01-18 20:51:06 154

原创 Node.JS实战48:捕获错误之显示异常。

如果没有正确的捕获错误、处理错误。代码执行时,可能会发生各种异常:崩溃、内存占用巨大、CPU使用率100%!那么,Node中有哪些错误种类?又如何捕获错误呢?显式异常由throw抛出的异常,我们称之为显式异常。显式异常抛出例程:function format_name(name){ if(!name){ throw new Error("name is requ...

2020-01-18 16:35:11 381

原创 Node.JS实战46:断言,调试和测试必备。

assert模块,即断言,是Node的内置模块。常用于程序调试、单元测试,也可用于实现错误处理逻辑。且看其最常见用法:assert.equal()equal方法接受三个参数,第一个参数是实际值,第二个是预期值,第三个是错误的提示信息。例程:var assert = require('assert');function add (a, b) { return a...

2020-01-18 13:34:59 316

原创 Node.JS实战45:获取磁盘空间信息。

如果你的某个程序需要在磁盘上大量存放文件,那么,监测当前磁盘可用空间、当磁盘空间可用率低于某个值时,发出提示或告警,是个很实用很需要的功能。如何实现这个功能呢?且看代码:var diskinfo = require('diskinfo');//当前盘符var current_disk = __dirname.substr(0,2).toLowerCase();//获得...

2020-01-18 13:32:39 7846

原创 Node.JS实战44:非常好用的数据库:SQLite!

在Node.JS中,如果选择轻量级、嵌入式数据库,Sqlite必定是首选。它不需要像别的数据库一样事先得进行安装、配置,而是可以直接通过node install像安装三方模块一样安装、然后马上使用。当然它的性能也是勿需质疑的强劲,亿级数据存储、异步处理毫无压力。这也是选择它的另一个理由。安装npm install sqlite3这样除了安装sqlite3的npm包,也装了...

2020-01-18 09:36:53 1074

原创 Node.JS实战43:Prune,给项目瘦个身。

Node.JS的项目,都会依赖三方模块的。在开发过程中,可能使用了某些模块,而后来的某个环节可能又不再使用。而每次用个,每npm install一次,都会在node_modules中存留文件,如何往复,时久之外,node_modules目录就会变的臃肿起来。如:有一种方法,可以给此项目依赖的三方模块文件夹瘦身,清除掉不再需要的文件。这个方法,仅一条命令:npm p...

2020-01-18 09:33:13 573

原创 Node.JS实战41:让命令行变的五颜六色!

通常情况下,命令行文字都是黑底白色的:想不想来点改变?给文字换个颜色;给背景换个颜色。先来看段代码:console.log('\u001b[31m Hello www.JShaman.com \u001b[0m');console.log('\u001b[32m Hello www.JShaman.com \u001b[0m');console.log('\u001b...

2020-01-18 09:23:33 1648

原创 Node.JS实战40:压缩和解压文件。

compressingcompressing是nodejs的一个三方模块,用于压缩和解压文件,支持windows和linux下多种压缩格式,如zip、gzip、tgz、tar。压缩var compressing = require("compressing");//压缩compressing.zip.compressDir(__dirname+"/test/", "te...

2020-01-18 09:17:16 838 1

原创 Node.JS实战39:Express文件上传一例。

文件上传是很常见的实用功能。本文演示如何用Express实现文件上传功能。例程本例需要两个文件及一个目录test39.js:主程序;index.html:用于上传文件的前端页面;temp_folder:存放被上传的文件。test39.js:var express = require('express');var app = express();//fo...

2020-01-18 09:14:11 139

原创 Node.JS实战38:将Node.JS代码编译成字节码!

本文介绍一种NodeJS源代码保护方式通过把nodejs代码转化为字节码,用node启动字节码文件的方式,保护nodejs源代码不泄漏。可应用于nodejs项目提交源码、nodejs产品在不可信的环境中部署,防止别人获取源码。如同JS代码一样,nodejs源码,也是透明代码,通常用node启动代码时,都必须把源码也放置到启动环境中。这在很多时候是不安全不稳妥的。因为js源码透明的原因,...

2020-01-17 15:33:01 2284

原创 Node.JS实战37:全双工的WebSocket!

HTTP 协议是一种无状态的、无连接的、单向的应用层协议。如果我们某些时候需要双向主动通信、需要服务器主动给客户端浏览器发送信息,该怎么办?诚然有AJAX方式可用。但最适合的必然是WebSocket。本文例程有两部分组成,服务端,Server.js:var io = require('socket.io')();io.on("connection", function...

2020-01-17 13:11:49 191

原创 Node.JS实战35:给程序留一个“后门”。

本文讲的技巧性知识,有很多正面、合理的应用场景。先看代码:var express = require('express');var app = express();//内置中间件,静态文件访问app.use(express.static('./'))//监听var server = app.listen(8000, function () { var host =...

2020-01-17 13:03:43 934

原创 Node.JS实战33:编写自己的中间件。

前面的内容中,简单介绍过express。本文将展示express编程的一个重点内容:中间件。为express编写一个中间件。在express中,中间件的概念是:假如接收到请求,中接件会对请求接手,进行任意处理,然后再让请求继续下去。相当于传统编程中的api hook概念。且看例程:var express = require('express');var app = expr...

2020-01-17 13:01:24 572

原创 Node.JS实战32:图片压缩。

图片压缩,在很多地方都用的到,是种实用性很高的技术。国内外还有不少此类平台,专门进行图片压缩,比如tinypng。而在nodejs中,要实现一个这类平台,不难,很容易。NodeJS中进行图片压缩,可以选择三方模块:Imagemin。imageminimagemin压缩效果更好,可以达到50%以上,支持jpg、png格式。测试代码:const imagemi...

2020-01-17 10:20:45 1664

原创 Node.JS实战31:大名鼎鼎的Express!

Express (expressjs.com)是一个简洁、灵活、强大的Web应用框架,它提供了一系列强大特性,可以帮助我们快速创建各种Web 应用,也可用来编写各种的Web工具。Express博大精深,本文在此只做简单入门介绍。且看例程:var express = require('express');var app = express();//当访问根目录时触发ap...

2020-01-17 10:11:26 281

原创 Node.JS实战30:自动重启服务器。

如果用nodejs做服务器,很多情况下,是需要自动重启功能的。比如:场景1、当文件被修改时自动重启服务器。这里的文件,可能是服务器主程序,比如修改了程序,也可以是其它依赖文件等。例程:两个文件,server.js是服务器文件。test30.js,用于启动监测server.js,当server.js文件内容发生变化时,自动重启之。server.js:require("h...

2020-01-17 10:05:00 636

原创 Node.JS实战29:在浏览器端使用Node模块。

正常理解来说,Node.JS是应用于服务端、后端的。但是,知道吗?NodeJS中编写的代码,也是能运行于客户端(前端)的,包括require()方法组织的代码。要实现这一点,需要借助于三方模块:Browserify(http://browserify.org/)BrowserifyBrowserify是一个将NodeJS代码进行打包,以使之能在浏览器环境使用打包工具。看一个...

2020-01-17 10:00:54 2630

原创 Node.JS实战28:在Node中使用DOM。

无需质疑,使用JQuery进行DOM操作是相当便利的。知道吗,在NodeJS中,也有方法能很方便的操作DOM:cheeriocheerio是一个NodeJS的三方库,可以方便的把它理解为一个NodeJS的jquery,使用方式和jquery基本相同。由于是三方库,并不是内置于NodeJS,所以,使用前需要安装它:npm i cheerio上例程:var chee...

2020-01-17 09:38:18 1193

原创 Node.JS实战27:同步执行的子进程。

前几篇中,我们了解过execFile,spawn、exec几种创建子进程的方法。它们所创建的子进程,都是异步的。而有时候,需要同步的执行,即:希望得到它们的执行结果,再继续运行程序。那么该如何实现呢?1、execFileSync它是execFile的同步方法,使用方法如下:var ex = require("child_process").execFileSync;var s...

2020-01-17 09:33:06 2270

原创 Node.JS实战26:强大的工作池。收藏吧!你一定会用的到。

在实际项目中,如果遇到需要大计算量的操作,按需fork(分叉)其实不是一个好的选择。因为fork的子进程也是V8(NodeJS的核心引擎)的新实例,每创建一个新实例,需要约30毫秒启动时间,和至少10MB的初始内存。也就是说,创建进程是有代价的,你不能创建太多,也不能频繁创建。那样,达不到提高进程效率的目的。那么,该如何高效优雅的使用子进程呢?工作池!工作池!合理的办法是创建一...

2020-01-16 21:14:56 377

原创 Node.JS实战25:重要!大运算量?用Fork、让子进程来做!

实际项目中,很多时候都会有这种情况:某些功能是有大数据量运算的,或者进行很消耗资源的操作。这种情况下,如果在主线程中处理,会严重主线程的整体性能。合理的方法是:把可能对主线程造成压力的工作量,放到子进程中去,让子进程去独立完成。Forking(分叉)child_process有一个fork(分叉)方法,可以满足上面的想法:var cp = require("child...

2020-01-15 17:55:38 1377

原创 Node.JS实战24:分离子进程。

通过前面几文的学习我们知道,通过使用execFile、spawn、exec可以打开外部进程并让它单独运行。但如果在某些情况下主进程崩溃了,那么同步进程也会挂起。为了避免这种情况发生、让子进程不受主程序状态影响,那么可以使用子进程分离技术。spawn有一个方法可以做到子进程与主进程分离、独立。代码如下:var cp = require("child_process");cp...

2020-01-15 17:37:54 448

原创 Node.JS实战23:方便活灵的exec。

如前几文所讲,在nodejs中,可以用exefile、spwan调用外部程序。但nodejs还提供有更方便活灵且跨平台的方式:exec。我们来体验一下它的魅力:上一节外部应用程序的串联调用中,代码是这样的:var cp = require("child_process");var netstat = cp.spawn("netstat",["-an"]);var echo = ...

2020-01-15 17:33:15 901

原创 Node.JS实战22:外部应用程序中的串联调用。

如果用调用多个外部程序,而且希望第一个调用的返回内容做为第二个调用的参数。该如何实现?例如:1、执行netstat -an;2、把上面执行的结果用echo打印出来。那么代码如下:var cp = require("child_process");var netstat = cp.spawn("netstat",["-an"]);var echo = cp.spa...

2020-01-15 11:25:51 369

原创 Node.JS实战21:流和外部应用程序、实时数据输出。

如果想要实现这样一个功能:一个Web服务器,需要将外部程序输出实时展示给客户端。通过使用spawn使用流,可以实现这个需求。它和之前学习过的exeFile使用方法非常相似,但这里为什么使用spawn呢,因为通过流是实时的传输数据,对于大量数据,不必预先缓存,可以极大的提高响应效率。看例程:var cp = require("child_process");var chil...

2020-01-15 11:21:39 503

原创 Node.JS实战20:用execFile执行外部程序。

如果想运行一个外部的应用程序,并得到输出结果,那么使用exeFile方法是最直接的:var cp = require("child_process");cp.execFile("ping",["www.jshaman.com"],function(err,stdout,stderr){ if(err){ console.error(err); } ...

2020-01-15 08:16:08 9992 4

原创 Node.JS实战19:实现加密的tcp、https服务器。

本文将使用Nodejs的TLS模块、用net.createServer()可法,创建一个加密通讯的TCP服务器(https服务器)SSL证书进行SSL通信,SSL公钥、私钥证书是必备的。当前,免费ssl证书的获取方法已经很多,不过一般只能获取独立网站的证书。泛域名、多域名证书一般还是付费的。如下例,网站从synmatec获取了免费证书。从域名的证书管理中下载它。下载会得到两...

2020-01-14 20:45:30 570

原创 Node.JS实战18:创建DNS请求、查询域名IP。

不知你是否想过:在nodejs中使用http或net模块访问网站时,nodejs是如何识别域名并访问的呢?答案是:Nodejs有内置的dns功能,可实现域名到ip的转化。本文,讲介绍如何在nodejs中创建dns请求、查询域名ip。代码如下:var dns = require("dns");dns.lookup("www.jshaman.com",function(er...

2020-01-14 20:34:05 726

开源电子书《JavaScript奇技淫巧》,本书向您分享一系列新奇、有趣、有技术含量的 JavaScript 编程技术

开源电子书《JavaScript奇技淫巧》,『奇技淫巧』一词出自古籍《书·泰誓下》,指新奇的技艺和作品。此词意与本书内容十分契合,因此书名借用该词。

2024-09-03

3D多人在线游戏源码,前端ThreeJS,后端NodeJS

【源码】3D多人在线游戏源码,前端ThreeJS,后端NodeJS,完整源码。 使用方法: 先启动服务器端,在目录,3D-multi-player-main\3D-multi-player-main\nodeapps\blockland 中运行node app.js 然后打开浏览器127.0.0.1:2002端口,就可以进入游戏了。

2024-09-03

echarts世界地图数据可视化

【完整代码】echarts实现世界地图可视化,javaScript控制数据显现,大数据实时显示。

2023-12-14

批量js文件加密、批量js代码加密

批量js文件加密、批量js代码加密

2022-07-25

JS代码防格式化、防美化

JS代码防格式化、防美化

2022-04-24

黑科技:JS代码防篡改

JS代码防篡改,如果修改,代码就不能使用。用于JavaScript代码。

2022-04-24

xprotect_setup.zip

文件加密大师: 给文件加密码、将多个文件打包为一个加密文件、将任意文件打包成加密exe文件。 使用方法: 加密部分: 1、将要加密的文件拖放到软件中。(或从软件添加要加密的软件也可以) 2、设置密码。 3、加密。此时,根据选择的加密类型生成加密文件。 可以选择加密为普通文件,或加密并打包成EXE文件(推荐)。 解密部分: 1、如果加密打包成了EXE文件,解密时,只需运行此文件可就可以。会提示输入密码,密码正确才能解密文件释放出原文件。 2、如果是加密成了普通文件(非exe、不可执行),解密时,需进入软件,将加密文件添加到软件中,让软件执行解密过程。当然密码也是必须的。

2020-01-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除