其它的如通过NPM安装的第三方模块(third-party modules)或本地模块(local modules),每个模块都会暴露一个公开的API。以便开发者可以导入。如代码如下:var mod = require(module_name) 此句执行后,Node内部会载入内置模块或通过NPM安装的模块。require函数会返回一个对象,该对象公开的API可能是函数,对象,或者属性如函数,数组,甚至任意类型的JS对象。 这里列下node模块的载入及缓存机制 1)载入内置模块(A Core Module)...
使用require('crypto')调用加密模块。 加密模块需要底层系统提供OpenSSL的支持。它提供了一种安全凭证的封装方式,可以用于HTTPS安全网络以及普通HTTP连接。 该模块还提供了一套针对OpenSSL的hash(哈希),hmac(密钥哈希),cipher(编码),decipher(解码),sign(签名)以及verify(验证)等方法的封装。 crypto.createCredentials(details) 创建一个凭证对象,可选参数details为一个带键值的字典:key:为字符串型,PEM编码...
件系统操作相关的函数挺多的。首先可以分为两大类。 一类是异步+回调的。 一类是同步的。 在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可 1. 首先是一类最常规的读写函数,函数名称和形式,应该是起源于C语言的。 代码如下:fs.open(文件路径,读写标识,[文件mode值,666],回调函数(err,文件句柄fd)); fs.read(文件句柄fd,被写入的buffer,offset,length,position,回调函数(err, bytesRead, buffer)); ...
在Node.js中对模块载入和执行进行了包装,使得模块文件中的变量在一个闭包中,不会污染全局变量,和他人冲突。 前端模块通常是我们开发人员为了避免和他人冲突才把模块代码放置在一个闭包中。 如何封装Node.js和前端通用的模块,我们可以参考Underscore.js 实现,他就是一个Node.js和前端通用的功能函数模块,查看代码:代码如下: // Create a safe reference to the Underscore object for use below. var _ = function(obj) { ...
NPM是一个Node包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。有了NPM,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。NPM常用的命令有:(1)$ npm install moduleNames安装Node模块注意事项:如果在使用模块的时候不知道其名字,可以通过http://search.npmjs.org网站按照索引值找到想要的模块。npm也提供了查询的功能 $ npm search indexName安装完毕后会产生一个node_modules目录,...
JavaScript是世界上使用频率最高的编程语言之一,它是Web世界的通用语言,被所有浏览器所使用。JavaScript的诞生要追溯到Netscape那个时代,它的核心内容被仓促的开发出来,用以对抗Microsoft,参与当时白热化的浏览器大战。由于过早的发布,无可避免的造成了它的一些不太好的特性。 尽管它的开发时间很短,但是JavaScript依然具备了很多强大的特性,不过,每个脚本共享一个全局命名空间这个特性除外。 一旦Web页面加载了JavaScrip...
诚然,之前处理都是使用内置的process.agrv ,这个能work,但是不好使,于是tj大神给写了一个,my god,完全的高大上: 1、安装代码如下: npm install commander2、option 解析 Options with commander are defined with the .option() method, also serving as documentation for the options. The example below parses args and options from process.argv, leaving remaining args as the program.args array which were not con...
温故而知新,可以为湿矣首先请大家记住这个 V8 的在线手册——http://izs.me/v8-docs/main.html。还记得上次的 building.gyp 文件吗?代码如下: {"targets": [{"target_name": "addon","sources": [ "addon.cc" ]}] }就像这样,举一反三,如果多几个 *.cc 文件的话就是这样的: "sources": [ "addon.cc", "myexample.cc" ]上次我们把俩步骤分开了,实际上配置和编译可以放在一起的: $ node-gyp configure build复习完了吗?没?!...
N久之前的一个坑——用 Node.js 来重构 NBUT 的 Online Judge,包括评测端也得重构一遍。(至于什么时候完成大家就不要关心了,(/‵Д′)/~ ╧╧总之我们现在要做的其实简而言之就是——用C/C++来实现 Node.js 的模块。 准备工作工欲善其事,必先~~耍流氓~~利其器。 node-gyp首先你需要一个 node-gyp 模块。在任意角落,执行:代码如下: $ npm install node-gyp -g在进行一系列的 blahblah 之后,你就安装好了。 Python然后你需要...
JavaScript 规范(ECMAScript)没有定义一套完善的能适用于大多数程序的标准库。CommonJS 提供了一套 JavaScript 标准库规范。Node 实现了 CommonJS 规范。 模块基础 在 Node 中,模块和文件是一一对应的。我们定义一个模块:代码如下: // circle.js var PI = Math.PI; // 导出函数 area exports.area = function(r) {return PI * r * r; } // 导出函数 circumference exports.circumference = function(r) {return 2 * PI * r; };...
Javascript自诞生以来,曾经没有人拿它当做一门编程语言。在Web 1.0时代,这种脚本语言主要被用来做表单验证和网页特效。直到Web 2.0时代,前端工程师利用它大大提升了网页上的用户体验,JS才被广泛重视起来。在JS逐渐流行的过程中,它大致经历了工具类库、组件库、前端框架、前端应用的变迁。Javascript先天就缺乏一项功能:模块,而CommonJS规范的出现则弥补了这一缺陷。本文将介绍CommonJS规范及Node的模块机制。 在其他高级语言...
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模块并赋予一个变量,以便在...
详细说明均以写在注释之中,这里就不啰嗦了,小伙伴们自己详细看吧,千万别吧注释当成空气了。代码如下: /*在node中,可以使用require()函数来加载模块.* require函数使用一个参数,参数值可以带有完整路径的模块的文件名,也可以为模块名.当使用node中提供的模块时,在require函数中只需要指定模块名即可.* */ //建立一个页面2.js;代码如下 var name="思思博士"; exports.name=name; //建立一个页面1.js;代码如下 var two=require("./...
archiver是一个在nodejs中能跨平台实现打包功能的模块,可以打zip和tar包,是一个比较好用的三方模块。 使用前先安装archiver模块。代码如下: npm install archiver建立一段代码代码如下: var archiver = require(archiver); var fs = require(fs); //被打包文件 var files = [files/001.png,files/002.png]; var zipPath = test.zip; //创建一最终打包文件的输出流 var output = fs.createWriteStream(zipPath); //生成archiver对...
nodejs的功能块大都以模块的形式存在的。 通常会有一个统一入口index.js,然后调用不同的模块来完成我们需要的功能。 我们先来看看怎么把server.js变成一个模块让 index.js 主文件使用。代码如下: var http = require("http"); ... http.createServer(...);“http” 是nodejs自带的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。 我们可以用这个变量来调用 http 模块所提供的公共方法的对象,变量名不是固定的,你完...