核心提示:node的学习笔记一、了解node1)Node不是一个Web服务器,它本身并不能做任何事情。Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime.二、no...
       node的学习笔记
一、了解node
1)Node不是一个Web服务器,它本身并不能做任何事情。Node.js只是计算机上执行代码的另一种方式,它是一个简单的JavaScript Runtime.
二、node命令行
1)不带任何参数直接在Shell中输入node,然后输入命令,每个命令都会返回一个值
2)执行一个js文件 node hello.js
三、文件的输入和输出操作 ==> 通过内置的文件(fs)模块
fs模块有一个readFile方法,该方法以文件路径、回调函数为参数。该回调函数在完成文件读取后调用
在一个js文件中输入如下代码即可:
example_log.txt:
2013-08-09T13:50:33.166Z A 2 2013-08-09T13:51:33.166Z B 1 2013-08-09T13:52:33.166Z C 6 2013-08-09T13:53:33.166Z B 8 2013-08-09T13:54:33.166Z B 5
    /*引入fs模块*/
    var fs = require('fs');  
    /*读入该文件*/
    fs.readFile('example_log.txt', function (err, logData) {  
        f (err) throw err; 
        /*文件数据读取后存储在Buffer类型中,为基本的字节数组*/
        var text = logData.toString();  
        var results = {};
        var lines = text.split('\n');
        lines.forEach(function(line) {  
            var parts = line.split(' ');  
            var letter = parts[1];  
            var count = parseInt(parts[2]);  
            if(!results[letter]) {  
                results[letter] = 0;  
            }  
            results[letter] += parseInt(count);
    });
输出为:{A:2,B:14,C:6}
四:异步回调 == > Node.js典型的模式是使用异步回调
Node是单线程的,在等待回调函数执行过程中,Node可继续执行其他事务,不必被阻塞直到该请求完毕。
HTTP服务器 == > http模块
my_web_server.js
    var http = require('http');
    http.createServer(function (req, res) {  
        res.writeHead(200, {'Content-Type': 'text/plain'});  
        res.end('Hello World\n');  
    }).listen(8080);  
    console.log('Server running on port 8080.');
五、Express框架
安装:npm install express
安装的模块会出现在node_modules文件夹中
一个静态服务器的搭建 == >
my_static_file_server.js
    var express = require('express'),
    app = express();
    app.use(express.static(__dirname + '/public')); 
    app.listen(8080);
六、使用npm安装依赖 在安装依赖的过程中 可以使用package.json文件来进行一次性的全部安装 npm install
    "name" : "MyStaticServer", 
    "version" : "0.0.1",  
    /*安装生产环境中的依赖 == > 安装模块的名称和版本*/
    "dependencies" : {  
        "express" : "3.3.x"  
    }  
parser.js == > log 分析脚本
    var Parser = function() {  
    }; 
    Parser.prototype.parse = function(text) { 
        var results = {};  
        var lines = text.split('\n');  
        lines.forEach(function(line) {  
            var parts = line.split(' ');  
            var letter = parts[1];  
            var count = parseInt(parts[2]);  
            if(!results[letter]) {  
                  results[letter] = 0;  
            }  
            results[letter] += parseInt(count);  
        });  
        return results;  
    }
    module.exports = Parser;/*从该文件中要输出的内容*/
my_parser.js
    /*引入文件路径  而非名称*/
    var Parser = require('./parser');
    var fs = require('fs');
    fs.readFile('example_log.txt', function (err, logData) {
        if (err) throw err;
        var text = logData.toString(); 
        var parser = new Parser();  
        console.log(parser.parse(text));
    }
npm install - save module_name /*npm将自动更新你的package.json 包含正确的模块和版本*/



 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                