标签:驱动程序 cti 压缩 参数 tao tac event 好的 当前目录
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。
简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
入参
Node.js 环境下的入参包括 event、context 和 callback,其中 callback 为可选参数。
event:使用此参数传递触发事件数据。 context:使用此参数向您的处理程序传递运行时信息。 callback(可选):使用此参数用于将您所希望的信息返回给调用方。在 Node.js 8.9 和 6.10 版本中,均可以使用 callback 来返回。在 Node.js 10.15 中,使用 async 描述的入口函数,需要使用 return 关键字返回,非 async 模式的入口函数,需要使用 callback 入参返回。
callback(Error error, Object result);
error:可选参数,在函数执行内部失败时使用此参数返回错误内容。成功情况下可设置为 null。
result:可选参数,使用此参数返回函数成功的执行结果信息。参数需兼容 JSON.stringify 以便序列化为 JSON 格式。
如果使用 return 关键字进行返回,可直接使用 return object 来返回一个对象或值。
如果在代码中未调用 callback 或 return,云函数后台将会隐式调用,并且返回 null。
根据调用函数时的调用类型不同,返回值会有不同的处理方式。同步调用的返回值将会序列化为 JSON 格式后返回给调用方,异步调用的返回值将会被抛弃。同时,无论同步调用还是异步调用,返回值均会在函数日志中 ret_msg 位置显示
如果我们使用 PHP 来编写后端的代码时,需要 Apache 或者 Nginx 的 HTTP 服务器,并配上 mod_php5 模块和 php-cgi。 从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求就不需要 PHP 来处理。 不过对 Node.js 来说,概念完全不一样了。使用 Node.js 时,我们不仅仅 在实现一个应用,同时还实现了整个 HTTP 服务器。事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的。 在我们创建 Node.js 第一个 "Hello, World!" 应用前,让我们先了解下 Node.js 应用是由哪几部分组成的: 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。 接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用。 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
$ npm -v
升级
$ sudo npm install npm -g
全局安装与本地安装 npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install express # 本地安装 npm install express -g # 全局安装
本地安装
卸载模块
我们可以使用以下命令来卸载 Node.js 模块。 $ npm uninstall express
卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看: $ npm ls
更新模块
我们可以使用以下命令更新模块: $ npm update express
搜索模块
使用以下来搜索模块: $ npm search express
创建模块 创建模块,package.json 文件是必不可少的
NPM 常用命令
使用npm help可查看所有命令。
使用npm help 可查看某条命令的详细帮助,
在package.json所在目录下使用npm install . -g可先在本地安装当前命令行程序,可用于发布前的本地测试。
使用npm update 可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。
使用npm update -g可以把全局安装的对应命令行程序更新至最新版。
使用npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。
使用npm unpublish @可以撤销发布自己发布过的某个版本代码。
使用淘宝 NPM 镜像
淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。 你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
这样就可以使用 cnpm 命令来安装模块了: $ cnpm install [name]
REPL 命令 ctrl + c - 退出当前终端。 ctrl + c 按下两次 - 退出 Node REPL。 ctrl + d - 退出 Node REPL. 向上/向下 键 - 查看输入的历史命令 tab 键 - 列出当前命令 .help - 列出使用命令 .break - 退出多行表达式 .clear - 退出多行表达式 .save filename - 保存当前的 Node REPL 会话到指定文件 .load filename - 载入当前 Node REPL 会话的文件内容。 停止 REPL 前面我们已经提到按下两次 ctrl + c 键就能退出 REPL:
创建 main.js 文件, 代码如下:
var fs = require("fs");
var data = fs.readFileSync(‘input.txt‘);
console.log(data.toString());
console.log("程序执行结束!");
非阻塞代码实例 创建一个文件 input.txt ,内容如下:
建 main.js 文件, 代码如下:
var fs = require("fs");
fs.readFile(‘input.txt‘, function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("程序执行结束!");
个事件驱动的流程就是这么实现的,非常简洁。有点类似于观察者模式,事件相当于一个主题(Subject),而所有注册到这个事件上的处理函数相当于观察者(Observer)。 Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件,如下实例:
// 引入 events 模块
var events = require(‘events‘);
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
以下程序绑定事件处理程序:
// 绑定事件及事件的处理程序 eventEmitter.on(‘eventName‘, eventHandler); 我们可以通过程序触发事件:
// 触发事件
eventEmitter.emit(‘eventName‘);
实例
创建 main.js 文件,代码如下所示:
实例
// 引入 events 模块
var events = require(‘events‘);
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
// 创建事件处理程序
var connectHandler = function connected() {
console.log(‘连接成功。‘);
// 触发 data_received 事件
eventEmitter.emit(‘data_received‘);
}
// 绑定 connection 事件处理程序
eventEmitter.on(‘connection‘, connectHandler);
// 使用匿名函数绑定 data_received 事件
eventEmitter.on(‘data_received‘, function(){
console.log(‘数据接收成功。‘);
});
// 触发 connection 事件
eventEmitter.emit(‘connection‘);
console.log("程序执行完毕。");
接下来让我们执行以上代码: $ node main.js 连接成功。 数据接收成功。 程序执行完毕。 Node 应用程序是如何工作的? 在 Node 应用程序中,执行异步操作的函数将回调函数作为最后一个参数, 回调函数接收错误对象作为第一个参数。 接下来让我们来重新看下前面的实例,创建一个 input.txt ,文件内容如下: 菜鸟教程官网地址:www.runoob.com 创建 main.js 文件,代码如下:
var fs = require("fs");
fs.readFile(‘input.txt‘, function (err, data) {
if (err){
console.log(err.stack);
return;
}
console.log(data.toString());
});
console.log("程序执行完毕");
以上程序中 fs.readFile() 是异步函数用于读取文件。 如果在读取文件过程中发生错误,错误 err 对象就会输出错误信息。 如果没发生错误,readFile 跳过 err 对象的输出,文件内容就通过回调函数输出。
标签:驱动程序 cti 压缩 参数 tao tac event 好的 当前目录
原文地址:https://www.cnblogs.com/liuxiaokun/p/12684414.html