学习注水-20161028-node.js入门笔记

  • node -v
  • node myscript.js
  • 输入node,进入REPL环境下,直接手输js代码也可直接执行
  • 建议使用JetBrain的WebStorm IDE环境
  • global全局变量
    1. __dirname : 当前执行文件的绝对目录
    2. __filename : 当前执行文件的绝对位置
  • console全局变量
    1. console.log()
    2. console.info()
    3. console.error() : 红色输出
    4. console.warn() : 红色输出
    5. console.time() ———————- |
    6. console.timeEnd() —————– | ——–> 统计一段代码的执行时间「[info]输出」
  • 重定向分流日志文件
    1. node myscript.js >log.txt //只能存log/info级别的信息输出
    2. node myscript.js 1>log.txt 2>error.txt // 1普通 2 错误
    3. node myscript.js 1>log.txt 2>&1
  • process全局变量

    1. process.stdout // process.stdout.write(“this is a standard output info”)
    2. process.stderr //process.stderr.write(“this is a standard error info”)
    3. process.stdin
    4. process.cwd() // 当前执行目录的绝对路径(目录)
    5. process.on()
    6. process.exit()
    7. process.argv // array(0=>’node’, 1=>’myscript.js’, 2=>yourValue_1, …)
    process.stdin.setEncoding('utf-8');
    process.stdin.on('data', function(data){
        console.log(data);
    });
    process.stdin.on('readable', function(){
        var data = process.stdin.read();
        console.log(data);
    });
    process.stdin.on('exit', function(){
        console.log('exit');
    });
    process.stdin.on('sigint', function(){
        console.log('软中断');
    });
  • 模块与包

    1. 能够实现特定功能的文件,以实现模块化编程
      1.1. require
      1.2. 赋给exports变量

      //sum.js
      require('./myscript_1.js')
      require('./myscript_2') // 可去除尾缀
      function sum(n){
          var sum = 0;
          for(var i = 1; i <= n; i++){
              sum += i;
          }
          return sum;
      }
      exports.sum = sum; // module.exports.sum = sum; 两者效果相同
      
      //main.js
      var sum = require('./sum');
      console.log(sum.sum(10));
    2. 一个文件,将模块封装起来,用来发布/更新/依赖管理和版本控制
      2.1. package.json描述入口文件/外部依赖
      2.2. npm install安装,require使用,npm remove移除

  • node文件处理

    1. fs : 异步/同步;阻塞/非阻塞
    2. path「诡异的神奇小功能」
    var fs = require('fs');
    fs.readFile(filePath, [options:{'utf-8'},] function(err, data){
        console.log(data.toString());
    }); // 异步
    var data = fs.readFileSync('sum.js', 'utf-8');
    console.log(data); // 同步
    
    var path = require('path');
    console.log(path.sep); // seperator分隔符 Mac/Linux /; Windows \.
    console.log(path.extname()); // 扩展名 extended name
  • Http Server

    var http = require('http');
    var fs = require('fs');
    var url = require('url');
    var server = http.createServer(function(request, response){
        var urlObj = url.parse(request.url);
        // urlObj={pathname:'/query.html', query:'x=a&y=b&z=c'};
        var pathname = urlObj.pathname;
        var query = urlObj.query;
        fs.readFile(pathname.substr(1), 'utf-8', function(err, data){
            if(err){
                response.writeHead(404);
                response.end('File Not Found');
            }
            else{
                response.end(data);
            }
        });
    }).listen(8080, 'localhost');
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值