相信nodejs会越来越成功
在学习Nodejs强大有两处: Event-driven, Asynchronous I/O callback.Nodejs服务器发的 程序是单线程方式,这就要求其对于block 类型的I/O要异步处理,而对于计算密集型的代码,也要进行对线程编程,这里简单的写个nodejs Event-driven的小例子.
var events = require('events');
var util = require('util');
// The Thing That Emits Event
Eventer = function(){
events.EventEmitter.call(this);
this.kapow = function(){
var data = "BATMAN";
this.emit('blamo', data);
},
this.bam = function(){
this.emit("boom");
};
};
util.inherits(Eventer, events.EventEmitter);
// The thing that listens to, and handles, those events
Listener = function(){
this.blamoHandler = function(data){
console.log("** blamo event handled");
console.log(data);
},
this.boomHandler = function(data){
console.log("** boom event handled");
};
};
// The thing that drives the two.
var eventer = new Eventer();
var listener = new Listener(eventer);
eventer.on('blamo', listener.blamoHandler);
eventer.on('boom', listener.boomHandler);
eventer.kapow();
eventer.bam();
/*function add(a, b)
{
console.log('a + b: ' + (a + b) );
}
function sub(a, b)
{
console.log('a - b' + (a - b));
}
add.call(sub, 3, 1);
*/
//result: 4
/*function Class1()
{
this.name = "class1";
this.showNam = function()
{
console.log(this.name);
};
}
function Class2()
{
this.name = "class2";
}
var c1 = new Class1();
var c2 = new Class2();
c1.showNam.call(c2); */
//result: class2
/*function Class1()
{
this.showTxt = function(txt)
{
console.log(txt);
};
}
function Class2()
{
Class1.call(this);
}
var c2 = new Class2();
c2.showTxt("cc");*/
//result: cc.
输出结果:
** blamo event handled
BATMAN
** boom event handled
分享到:
相关推荐
1. **异步编程**:Node.js 的核心特性之一就是它的非阻塞I/O模型,基于事件驱动。这使得 Node.js 在处理大量并发请求时表现出色,因为它不会因为等待I/O操作完成而阻塞其他任务。例如,文件读写、网络请求等操作都是...
在Node.js中,事件驱动是其核心特性之一,它使得程序可以高效地处理异步操作。自定义事件是扩展这一特性的关键,允许开发者根据需求创建自己的事件来触发特定的操作。下面我们将深入探讨如何在Node.js中实现自定义...
学习这个案例可以帮助我们掌握 Node.js 的基本用法,包括文件操作、数据解析、事件驱动编程以及异步处理等核心技能。此外,还可以了解到如何利用现有的开源库来解决实际问题,提升开发效率。通过深入分析和实践,...
在IT行业中,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。MongoDB则是一种流行的开源、无模式的分布式文档数据库,常用于构建高性能、可扩展的数据驱动的...
总结来说,NodeJS的单线程模型虽然在CPU密集型任务上存在限制,但通过异步I/O、事件驱动编程以及子进程和集群技术,NodeJS能够有效地处理高并发的网络应用,并充分利用多核CPU资源。这种设计使得NodeJS特别适合于...
Node.js利用非阻塞I/O和事件驱动模型,使得它可以高效地处理大量的并发连接,非常适合构建网络服务和实时应用。 **JSON-RPC协议:** JSON-RPC允许客户端通过一个简单的JSON对象结构发起请求,该对象包含方法名、...
Node.js 使用了一个事件驱动、非阻塞 I/O 模型,使其轻量又高效,非常适合构建数据密集型的实时应用。 在 "nodejs:nodejs实例代码" 的主题下,我们可以探讨以下几个Node.js的核心知识点: 1. **事件驱动模型**:...
- **事件驱动编程**:Node.js的核心设计是基于事件驱动模型,这使得它能高效地处理大量并发连接。 - **非阻塞I/O**:Node.js的异步处理方式避免了线程上下文切换的开销,提高了性能。 2. **Socket.IO介绍** - **...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其异步、事件驱动的非阻塞I/O模型而著名,特别适合用于构建高效、可伸缩的网络应用。这本书籍将带领读者深入理解Node.js的核心概念和最佳实践,包括但不...
1. **事件驱动模型**:Node.js 使用非阻塞I/O模型,基于事件驱动,这使得它非常适合处理大量并发连接,例如在构建高并发的Web服务时。 2. **npm(Node Package Manager)**:Node.js的包管理器,用于安装和管理第三...
事件驱动编程允许开发者专注于业务逻辑,而不必深入底层线程管理的复杂性。这种编程模型模拟了现实世界中的并发行为,如家庭主妇同时处理两道菜,她可以在等待黄瓜冷却的同时准备另一道菜,而不是顺序执行每一步。 ...
Node.js 的核心特点包括模块机制、异步 I/O、事件驱动机制以及遵循 CommonJS 规范的模块系统。由于其在服务器端的优势,Node.js 逐渐成为开发者喜爱的平台之一。 模块机制是 Node.js 中的一个核心概念。Node.js ...
Node.js是一款基于Chrome V8引擎的JavaScript运行环境,它以其异步非阻塞I/O和事件驱动的模型,为构建高性能网络应用提供了强大的支持。本资源"Nodejs入门经典"旨在帮助初学者快速掌握Node.js的基础知识和实际应用。...
5. **开始编程**:一旦安装成功,用户就可以开始编写 Node.js 代码,利用它的非阻塞 I/O 和事件驱动特性创建高性能的网络应用程序,如Web服务器、实时通信应用等。 Node.js 支持多种编程模式,包括命令行脚本、创建...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它以其异步非阻塞I/O和事件驱动的特性,在服务器端编程领域得到了广泛应用。MongoDB则是一个开源的文档数据库系统,它使用JSON格式的文档存储数据,具有高灵活...
1. **Node.js基础**:Node.js的核心特性是其事件驱动、非阻塞I/O模型,这使得它在处理高并发请求时表现出色。文档可能介绍了如何安装Node.js,创建第一个“Hello, World!”程序,以及Node.js的全局对象和基本数据...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它以其高效、非阻塞I/O和事件驱动的特性在服务器端编程领域崭露头角。Node.js 的出现使得开发者可以用 JavaScript 这种前端语言进行后端开发,极大地提高...
在实际开发中,推荐在处理异步操作时采用异步编程模式,例如使用Promise或者async/await语法,这些模式可以让异步代码看起来更接近于同步代码,同时保持了Node.js非阻塞和事件驱动的特性。 Node.js中的阻塞通常不是...