文章标题

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:

<b>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</b> 
<b>
    /*引入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);
    });
</b>

输出为:{A:2,B:14,C:6}

四:异步回调 == > Node.js典型的模式是使用异步回调
Node是单线程的,在等待回调函数执行过程中,Node可继续执行其他事务,不必被阻塞直到该请求完毕。

HTTP服务器 == > http模块

my_web_server.js

<b>
    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.');
</b>

五、Express框架

安装:npm install express
安装的模块会出现在node_modules文件夹中

一个静态服务器的搭建 == >
my_static_file_server.js

<b>
    var express = require('express'),
    app = express();
    app.use(express.static(__dirname + '/public')); 
    app.listen(8080);
</b>

六、使用npm安装依赖 在安装依赖的过程中 可以使用package.json文件来进行一次性的全部安装 npm install

<b>
    "name" : "MyStaticServer", 
    "version" : "0.0.1",  
    /*安装生产环境中的依赖 == > 安装模块的名称和版本*/
    "dependencies" : {  
        "express" : "3.3.x"  
    }  
</b>

parser.js == > log 分析脚本

<b>
    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;/*从该文件中要输出的内容*/
</b>

my_parser.js

<b>
    /*引入文件路径  而非名称*/
    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));
    }
</b>
npm install - save module_name  /*npm将自动更新你的package.json 包含正确的模块和版本*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值