最近在读<Node入门经典>, 之前没有做笔记, 今天开始把看过自己又写了的代码放这里以免忘记.

express

var express = require('express')
var app = express() app.get('/', function (req, res) {
res.send('Hello World')
})
app.listen(3000)

route

var http = require('http');
var url = require('url'); http.createServer(function(req,res){ var name = url.parse(req.url).pathname;
if (name === '/'){
res.writeHead(200,{
'Content-Type':'text/plain'
});
res.end('home page');
}
else if (name === '/about'){
res.writeHead(200,{
'Content-Type':'text/plain'
});
res.end('about me');
}
else if (name === '/redirect')
{
res.writeHead(301,{
'location': 'http://www.baidu.com'
});
res.end();
}
else{
res.writeHead(404,{
'Content-Type':'text/plain'
});
res.end('page not find');
} }).listen(3000, "127.0.0.1"); console.log('server start');

socket.io

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http); app.get('/', function(req, res){
res.sendfile('index2.html');
}); io.on('connection', function(socket){
console.log('a user connected');
socket.emit('chat message', {text:'hi'}); socket.on('disconnect', function(){
console.log('user disconnected');
}); socket.on('chat message', function(msg){
console.log('message: ' + msg);
});
}); http.listen(3000, function(){
console.log('listening on *:3000');
});
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
</head>
<body>
<p id='count'></p>
<script src="/socket.io/socket.io.js"></script> <script>
var socket = io();
var count = document.getElementById('count');
socket.on('chat message', function(data){
count.innerHTML = data.text;
}); </script>
</body>
</html>

json

var http = require('http');

var obj = {
name:'green',
sur:'abcd'
};
console.log(obj); var json = JSON.stringify(obj);
console.log(json); var ori = JSON.parse(json);
console.log(ori);

spawn

var spawn = require('child_process').spawn;
var ping = spawn('ping', ['www.baidu.com']);
ping.stdout.setEncoding('utf8');
ping.stdout.on('data', function(data){
console.log(data);
});
ping.on('exit', function(code, signal){
console.log(code, ' ', signal);
process.exit(0);
});
setInterval(function(){
ping.kill('SIGINT');
}, 2000);

cluster

var cluster = require('cluster');
var http = require('http');
var cpus = 4;
if (cluster.isMaster){
console.log('master start at ' + process.pid); for (var i = 0; i < cpus; ++i ){
cluster.fork();
}
cluster.on('death', function(worker){
console.log('die: ' + woker.pid);
cluster.fork();
});
}
else{
console.log('worker start ' + process.pid);

events

var eventEm = require('events').EventEmitter;
var myEvent = new eventEm(); myEvent.on('message', function(data){
console.log(data);
}); myEvent.on('destroy', function(){
console.log('destroyed');
}); myEvent.emit('message','show message');
setTimeout(function(){
myEvent.emit('destroy');
}, 1000);

stream

var http = require('http');
var fs = require('fs'); http.createServer(function(req,res){
var mp3 = 'abc.mp3';
var stat = fs.statSync(mp3); res.writeHead(200,
{
'Content-Type':'audio/mpeg',
'Content-Length': stat.size
});
var readSteam = fs.createReadStream(mp3);
readSteam.pipe(res); }).listen(3000, "127.0.0.1"); console.log('server start');

<Node入门经典>读书笔记的更多相关文章

  1. csapp读书笔记-并发编程

    这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...

  2. CSAPP 读书笔记 - 2.31练习题

    根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1)  属于第一种情况 sum = x ...

  3. CSAPP读书笔记--第八章 异常控制流

    第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...

  4. CSAPP 并发编程读书笔记

    CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...

  5. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  6. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  7. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  8. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  9. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  10. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. 创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

    上一节我们完成了 OVS 的准备工作,本节从最基础的 local network 开始学习.local network 不会与宿主机的任何物理网卡连接,流量只被限制在宿主机内,同时也不关联任何的 VL ...

  2. OpenCV人脸识别Eigen算法源码分析

    1 理论基础 学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下: 1.1 协方差矩阵 首先需要了解一下公式: 共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本 ...

  3. 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)

    统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...

  4. JavaScript学习笔记(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  5. BPM配置故事之案例13-触发消息通知

    老李:小明! 小明:--见你就没好事,又要我干嘛? 老李:额,小事小事,最近很多部门都觉得Boss的审批速度太慢了,能不能以后给审批人一个消息提醒? 小明:--有一种不太好的预感 老李:怎么,很困难么 ...

  6. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  7. 在树莓派Raspbian下安装支持Hard Float的.NET环境

    [题外话] 最近入了个树莓派玩,系统装的官方推荐的Hard Float的Raspbian,由于衍生自Debian,所以Mono什么的非常好装.但是官方源中的Mono在Hard Float的Raspbi ...

  8. ubuntu+mono+jexus 搭建.net的web平台 实现.net跨平台

    准备工作: vmware 用来安装 ubuntu 下载地址:VMware-workstation-9.0.1-894247.exe.tar 注册码: 1A4P8-DMK0N-FZ431-7K8NH-2 ...

  9. .NET面试题系列[5] - 垃圾回收:概念与策略

    面试出现频率:经常出现,但通常不会问的十分深入.通常来说,看完我这篇文章就足够应付面试了.面试时主要考察垃圾回收的基本概念,标记-压缩算法,以及对于微软的垃圾回收模板的理解.知道什么时候需要继承IDi ...

  10. zone.js - 暴力之美

    在ng2的开发过程中,Angular团队为我们带来了一个新的库 – zone.js.zone.js的设计灵感来源于Dart语言,它描述JavaScript执行过程的上下文,可以在异步任务之间进行持久性 ...