`

(一)、node.js 初探

 
阅读更多

1、用node.js创建一个HTTP服务器

var http = require('http');
http.createServer(function(req, res) { 
 res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<h1>Node.js</h1>');
 res.end('<p>Hello World</p>');
}).listen(3000)

 listen函数创建了事件监听,使得node.js进程不会退出事件循环。

2、回调函数

 

var fs = require('fs'); fs.readFile('file.txt', 'utf-8', function(err, data) {
    if(err) {
       console.error(err);
    } else { 
       console.log(data);
    } 
});
console.log("end")
  程序的执行结果是先打印出end,然后输出文件的内容。
fs.readFile 调用时所做的工作只是将异步式I/O请求发送给了操作系统,然后返回并执行后面的语句,执行完成以后进入事件循环监听。当fs接收到I/O请求完成的事件时,事件循环会主动调用回调函数完成后续工作。

3、事件

Node.js的所有异步式I/O操作在完成时都会发送一个事件到事件队列。在开发者看来,事件是有EventEmitter对象提供。前面提到的fs.readFile和http.createServer的回调函数都是通过EventEmitter来实现的。下面我们用一个简单的例子说明EventEmitter的用法。

var EventEmitter = require('events').EventEmitter;
var event = new EventEmitter();
event.on('some_event', function() {
     console.log('some_event occured.');
});
setTimeout(function() {
     event.emit('some_event');
}, 1000);

 1秒中后事件发射器对象event发射了事件some_event,此时会调用some_event的事件监听器。

4、Node.js的事件循环机制

 node.js诚寻由事件循环开始,到事件循环结束,所有的逻辑都是事件的回调函数。事件循环会检查事件队列中有没有未处理的事件,直到程序结束。下面说下事件循环的原理。

 

 

分享到:
评论

相关推荐

    深浅node.js.rar

    学习node.js 前端 深入浅出 Node.js (一):什么是 Node.js 深入浅出 Node.js (二): Node.js&NPM; 的安装与配置 深入浅出 Node.js (三):深入 Node.js 的模块机制 深入浅出 Node.js (四): Node.js 的事件...

    Node.js后端技术初探.pdf

    Node.js后端技术初探.pdf

    Got:Node.js 的人性化和强大的 HTTP 请求库-开源

    Got 在内部使用 Keyv 来支持各种存储适配器。 对于更具可扩展性的东西,您可以使用官方 Keyv 存储... 响应对象通常是一个 Node.js HTTP 响应流,但是,如果从缓存返回,它将是一个类似响应的对象,其行为方式相同。

    Examples-Node.js_20140424:Node.js开发实务:初探JavaScript 应用程式设计书本范例

    Examples-Node.js-主分支 由Mandice贡献者撰写的书籍示例。 执照 根据MIT许可获得许可 作者 版权所有(c)2013 Mandice贡献者&lt; &gt;

    node.js基础模块http、网页分析工具cherrio实现爬虫

     说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http、网页分析工具cherrio。 使用http直接获取url路径对应网页资源,然后使用cherrio分析。 这里我主要学习过的案例自己敲了一遍,加深...

    My_Electron.zip

    electorn 学习初探,通过hello world开始,一个简单的应用

    麦子学院招牌课程[明星python编程视频VIP教程]

    第一阶段:python基础准备本阶段主要是学习python开发入门知识,html+css、javascript、jquery、python编程基础、python初探等,让你轻松入门python语言。 第二阶段:Pythonweb开发本阶段是主要Python开发基础知识的...

    Blog::open_book: 染陌的Blog

    用来记录学习过程以及分享技术所得的个人 blog ...《养只爬虫当宠物(Node.js 爬虫爬取 58 同城租房信息)》 《微信小程序 Demo》 《CSS 居中的几种方式》 《CSS 常见布局》 《Node.js 实现用户登陆 session》

    webpack 模块联邦学习源码 - 微前端解决方案初探 03 模块联邦(概述、案例介绍、应用初始化)

    webpack 模块联邦学习源码 - 微前端解决方案初探 03 模块联邦(概述、案例介绍、应用初始化)

    初探nodeJS

    一、node概要 对nodeJS早有耳闻,但是一直迟迟没有对它下手,哈哈哈,今儿咱就来初探一下它。 nodeJS是个啥东东? nodeJS,我的理解就是可以运行在后端的JavaScript。 为什么它能够在后端运行呢? 这就得归功于V8...

    puppeteer库入门初探

    puppeteer 是一个Chrome官方出品的headless Chrome node库。它提供了一系列的API, 可以在无UI的情况下调用Chrome的功能, 适用于爬虫、自动化处理等各种场景 根据官网上描述,puppeteer 具有以下作用: 生成页面截图...

    nodejs入门到实战-02-webserver介绍和express框架初探

    所谓静态资源就是指 图片,js文件,css文件等常见的文件 在浏览器中显示的内容有 HTML、有 js、有 jpg等等,这些都叫静态资源 ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME ...

Global site tag (gtag.js) - Google Analytics