11C++插件
1 应用场景Automation 如果您的c++运行作为一个独立的命令行,您不需要源代码来利用选项1 -automation 选项。您可以使用Node的子进程API 运行您的c++程序。这个选项适用于将任何东西带到web上——如果你只是运行它的话,你的命令行程序写在什么语言上并没有什么区别。如果您正在阅读这篇文章,希望获得C代码、Fortran代码或其他一些语言,那么这个选项值得一读。 自动化选项不仅仅针对那些没有c++代码的人。如果您有c++代码,或者可以很容易地转换成命令行程序,那么这个选项是合理的,如果您可以使用性能,并且您并不想陷入语言集成的麻烦中。 Shared Library / DLL 如果您处理的是c++ dll/lib,或者您有c++源代码,并且可以进行适当的修改,以创建动态库,那么 shared library 方法可能对您很有效。在本章中,我们将详细介绍如何使用外部函数接口模块进行此操作。这个选项可以让您更精确地控制如何将c++集成到节点中,因为对c++例程的调用通常可以直接写到Node.js代码中。虽然这种方法可以使您更接近完整...
12Electron
electron 使用网页技术开发桌面应用。 electron提供了一系列本地应用的框架,主要包括桌面图标、桌面菜单等本地应用独有的部分。 界面显示的部分,由electron提供运行环境。 界面显示的功能,主要由nodejs实现。所以,本质上还是使用nodejs 逻辑说明 在web技术当中,分为前端和后端。前端通过HTML、CSS、JavaScript实现页面的动态变化。 后端使用nodejs处理数据,将数据渲染到页面,并返回新的页面。 前端和后端通过url脚本进行通信。nodejs的脚本不能在前端执行。 nodejs是JavaScript的一个扩展库,使得JavaScript能做到更多的本地数据处理,从而成为可以在服务器端运行,通过虚拟的V8处理器,访问服务器资源。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。Node.js使用JavaScript进行编程,运行在JavaScript引擎上(V8) 前端JavaScript主要参与页面响应,通过接口API向...
10工具模块
1 os模块2 path模块3 net模块4 dns模块5 domain模块
3回调函数
2回调函数 在javascript中,一切都是变量,一起都是对象,基本数据类型的变量、函数类型的变量、对象类型的变量。也就是说,变量可以指向,基础数据类型、函数数据类型、对象数据类型等。通过回调函数实现了异步编程。 同步阻塞123456var fs = require("fs");var data = fs.readFileSync('input.txt');console.log(data.toString());console.log("程序执行结束!"); 异步回调12345678var fs = require("fs");fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString());});console.log("程序执行结束!");
4模块系统
1 说明 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。 Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。 2示例代码示例 main.js 12var hello = require('./hello');hello.world(); hello.js 123exports.world = function() { console.log('Hello World');} 暴露对象1234567891011//hello.js function Hello() { var name; this.setName = function(thyName) { name ...
5buffer模块
buffer模块1 模块说明作用 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区 Node.js 目前支持的字符编码包括: ascii - 仅支持 7 位 ASCII 数据。如果设置去掉高位的话,这种编码是非常快的。 utf8 - 多字节编码的 Unicode 字符。许多网页和其他文档格式都使用 UTF-8 。 utf16le - 2 或 4 个字节,小字节序编码的 Unicode 字符。支持代理对(U+10000 至 U+10FFFF)。 ucs2 - utf16le 的别名。 base64 - Base64 编码。 latin1 - 一种把 Buffer 编码成一字节编码的字符串的方式。 binary - latin1 的别名。 hex - 将每个字节编码为两个十六进制字符。 2 模块应用创建Buffer 类 Buffer.alloc(size[, fill[, encoding]]): 返回一个指定大小的 * Buffer 实例,如果没有设置 fill,则默认填满 0 Buffer.allocUnsafe(size): 返回一个指定大小的 ...
7http&url模块
http&url模块1 模块说明 用来构建nodejs的原声的服务器程序。 2 代码示例server.js1234567891011121314151617181920var http = require("http");var url = require("url"); function start(route) { function onRequest(request, response) { var pathname = url.parse(request.url).pathname; console.log("Request for " + pathname + " received."); route(pathname); response.writeHead(200, {"Content-Type": "text/plain"}); response.write(&...
6events模块
事件循环1 模块说明过程 Node.js 是单进程单线程应用程序 Node.js 几乎每一个 API 都是支持回调函数的。 Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。 Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数. 示例 Node.js 使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。 非阻塞式IO,事件驱动IO 事件相当于一个主题(Subject),而所有注册到这个事件上的处理函数相当于观察者(Observer)。 2 模块应用示例12345678910111213141516171819202122232425// 引入 events 模块var events = require('events');// 创建 eventEmitter 对象var eventEmitter = new e...
8全局对象
1 全局变量 __filename 表示当前正在执行的脚本的文件名。 __dirname 表示当前执行脚本所在的目录。 console 用于提供控制台标准输出,它是由 Internet Explorer 的 JScript 引擎提供的调试工具,后来逐渐成为浏览器的实施标准。 process 是一个全局变量,用于描述当前Node.js 进程状态的对象,提供了一个与操作系统的简单接口。 全局函数 setTimeout(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。:setTimeout() 只执行一次指定函数。返回一个代表定时器的句柄值。 clearTimeout( t ) 全局函数用于停止一个之前通过 setTimeout() 创建的定时器。 参数 t 是通过 setTimeout() 函数创建的定时器。 setInterval(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。
9fs模块
fs模块1 流读写流的四种状态 Readable - 可读操作。 Writable - 可写操作。 Duplex - 可读可写操作. Transform - 操作被写入数据,然后读出结果。 流对象事件 data - 当有数据可读时触发。 end - 没有更多的数据可读时触发。 error - 在接收和写入过程中发生错误时触发。 finish - 所有数据已被写入到底层系统时触发。 流读取1234567891011121314151617181920212223var fs = require("fs");var data = '';// 创建可读流var readerStream = fs.createReadStream('input.txt');// 设置编码为 utf8。readerStream.setEncoding('UTF8');// 处理流事件 --> data, end, and errorreaderStream.on('data', f...














