使用require(crypto)调用加密模块。加密模块需要底层系统提供OpenSSL的支持。它提供了一种安全凭证的封装方式,可以用于HTTPS安全网络以及普通HTTP连接。该模块还提供了一套针对OpenSSL的hash(哈希),hmac(密钥哈希),cipher(编码),decipher(解码),sign(签名)以及verify(验证)等方法的封装。crypto.createCredentials(details)创建一个凭证对象,可选参数details为一个带键值的字典:key:为字符串型,PEM编码的私钥...
简介及资料 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ ,这些核心模块被编译成二进制文件,可以require(模块名)去获取;核心模块具有最高的加载优先级(有模块与核心模块同名时会体现) (本次主要说自定义模块) Node.js还有一类模块为文件模块,可以是JavaScript代码文件(.js作为文件后缀)、也可以是JSON格式文本文件(.json作为文件后缀)、还可以是编辑过的C/C++文件(.n...
JavaScript是世界上使用频率最高的编程语言之一,它是Web世界的通用语言,被所有浏览器所使用。JavaScript的诞生要追溯到Netscape那个时代,它的核心内容被仓促的开发出来,用以对抗Microsoft,参与当时白热化的浏览器大战。由于过早的发布,无可避免的造成了它的一些不太好的特性。尽管它的开发时间很短,但是JavaScript依然具备了很多强大的特性,不过,每个脚本共享一个全局命名空间这个特性除外。一旦Web页面加载了JavaScript代...
前言虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程。node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作。如果不是和命令行工具打交道,可能我们很少有机会去用到process模块中的一些方法或者属性。不过如果你要做类似于webpack或者gulp等较为复杂的构建工具,由于bash界面就是和用户直接交流的工具,因此友好...
详细说明均以写在注释之中,这里就不啰嗦了,小伙伴们自己详细看吧,千万别吧注释当成空气了。/*在node中,可以使用require()函数来加载模块.* require函数使用一个参数,参数值可以带有完整路径的模块的文件名,也可以为模块名.当使用node中提供的模块时,在require函数中只需要指定模块名即可.* */ //建立一个页面2.js;代码如下 var name="思思博士"; exports.name=name; //建立一个页面1.js;代码如下 var two=require("./2.js"); co...
不过有消息称Microsoft已经联系Node.js官方,相信很快会有改善。 那么在不安装Cygwin的情况下,是否可以在Windows上搭建Node.js环境进行试验开发哪?我以Node.js + express做了个简单测试,基本可行。 步骤如下: 1. 下载Node.js官方非稳定版Windows可执行程序: http://nodejs.org/#download 我在试验中使用了0.5.7版本:http://nodejs.org/dist/v0.5.7/node.exe 2. 创建c:\nodejs目录,并将node.exe保存在此目录中 3. 下载expres...
这里来介绍一个Node.js的模块——request。有了这个模块,http请求变的超简单。Request使用超简单,同时支持https和重定向。var request = require(request); request(http://www.google.com, function (error, response, body) {if (!error && response.statusCode == 200) {console.log(body) // 打印google首页 } })流:任何响应都可以输出到文件流。流:任何响应都可以输出到文件流。request(http://google.com/doodle.png).pi...
什么是ReadlineReadline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。使用require("readline")可以引用模块。如何使用Readline以使用为角度的话,学习Readline,我们需要学习它的三个部分:创建Readline实例学习里面的接口方法学习监听与处理Readline事件下面我们通过实例来学习这三个部分。实例1:我叫小明代码如下:/*** Created by Administrator on 2015/9/10.*/ // 引入readline...
NPM是一个Node包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。有了NPM,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。NPM常用的命令有: (1)$ npm install moduleNames 安装Node模块 注意事项:如果在使用模块的时候不知道其名字,可以通过http://search.npmjs.org网站按照 索引值找到想要的模块。npm也提供了查询...
在Node.js中对模块载入和执行进行了包装,使得模块文件中的变量在一个闭包中,不会污染全局变量,和他人冲突。前端模块通常是我们开发人员为了避免和他人冲突才把模块代码放置在一个闭包中。如何封装Node.js和前端通用的模块,我们可以参考Underscore.js 实现,他就是一个Node.js和前端通用的功能函数模块,查看代码:// Create a safe reference to the Underscore object for use below.var _ = function(obj) {if (obj instance...
Node.js的http服务器通过使用HTTP模块的低级API,Node.js允许我们创建服务器和客户端。刚开始学node的时候,我们都会遇到如下代码: var http = require(http); http.createServer(function (req,res) {res.end(Hello World\n); }).listen(3000,"127.0.0.1"); console.log("Server funning at http://127.0.0.1:3000");这段代码的包括了http模块的信息,意思是:1.从`Node.js`的核心请求HTTP模块并赋予一个变量,以便在以后的脚本中...
前述nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核CPU机器上的性能表现。本文将介绍利用cluster模块创建的多线程如何共享数据的问题。进程间数据共享首先举个简单的例子,代码如下:var cluster = require(cluster); var data = 0;//这里定义数据不会被所有进程共享,各个进程有各自的内存区域 if (cluster.isMaster) { //主进程var numCPUs = require(os).cpus...
Nodejs的大部分核心API都是基于异步事件驱动设计的,所有可以分发事件的对象都是EventEmitter类的实例。大家知道,由于nodejs是单线程运行的,所以nodejs需要借助事件轮询,不断去查询事件队列中的事件消息,然后执行该事件对应的回调函数,有点类似windows的消息映射机制。至于更细的实现环节,可以另行查找资料。下面介绍EventEmitter的使用。1、监听事件和分发事件EventEmitter实例可以使用on或addListener监听事件,emit()方法...
模块概览net模块是同样是nodejs的核心模块。在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socket)。也就是说,做node服务端编程,net基本是绕不开的一个模块。从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了:net.Server:TCP server,内部通过socket来实现与客户端的通信。net.Socket:tcp/本地 socket的node版实现,它实现了全双工的s...
模块概览在nodejs中,path是个使用频率很高,但却让人又爱又恨的模块。部分因为文档说的不够清晰,部分因为接口的平台差异性。将path的接口按照用途归类,仔细琢磨琢磨,也就没那么费解了。获取路径/文件名/扩展名获取路径:path.dirname(filepath)获取文件名:path.basename(filepath)获取扩展名:path.extname(filepath)获取所在路径例子如下:var path = require(path); var filepath = /tmp/demo/js/test.js; // 输出:/tmp/d...