• Node的REPL环境


    1. Node的REPL环境

    • 什么是REPL
        REPL全称 Read-eval-print-loop,交互式解析器
        REPL可以提供给程序员对Node.js的一些api快速测试
    
    • REPL的基本操作

      • 定义和运行变量、函数、对象
      • 下划线_ 可以获取表达式的运算结果
    • REPL的常用命令

      • 退出REPL,连按两次ctrl+c,输入.exit
      • tab 打印Node.js中的所有对象
      • 向上/向下 查看历史命令
      • .save filename 保存输入的命令
      • .load filename 加载文件

    2. Node 执行js文件

    • node filename

    3. Node.js的快速体验

    • 读取文件
    //加载文件读写模块
    var fs = require("fs");
    
    fs.readFile("data.json", function(error, data) {
        if(error){
            throw error;
        }
        console.log(data.toString());
    });
    
    • 创建一个简易web服务器
    var http = require("http");
    var server = http.createServer();
    var count = 0;
    server.on("request", function (request,response) {
        count ++;
    
        console.log("有请求进来");
        response.write("hello world" + count);
        response.end();
    });
    
    server.listen(3333);
    console.log("服务开启");
    

    4. Node中的全局对象

    • global
      • global顶级对象,类似于浏览器中的window
      • 在任何地方可以直接使用,不需要导包
      • setTimeout/setImmediate/process.nextTick,异步的时候setTimeout的优先级高于setImmediate,process.nextTick优先级最高
      • setInterval
      • 在REPL环境中定义的变量直接挂载到global中
      • 在js文件中定义的变量不会挂载到global中
    • 获取路径
      • __dirname 当前执行的js所在的文件夹
      • __filename 当前执行的js的路径
      • process.cwd() 当前执行node.exe的路径
    • process

      • process.abort() 退出node.exe
      • process.arch 获取执行当前node的平台是32还是64位
      • process.argv 获取当前执行node时候的参数数组

        默认数组由两个值 1、node的路径 2、当前js的路径

      • process.env 获取环境变量

        结合命令行 命令 set xxx="" 可以指定执行的环境 例如:set xxx=dev && node 07-env判断执行环境.js

    • 标准输入输出

      • process.stdout.write(); console.log内部调用的write()并且加了一个换行
      • 案例:输出控制台动画

        var index = 0;
        setInterval(function () {
          //输出之前清空之前的内容
          process.stdout.write("\u001b[2J\u001b[0;0H");
        
          var content = fcontent[index];
        
          process.stdout.write(content);
        
          index++;
        
          if(index >= fcontent.length) {
              index =0;
          }
        }, 100);
        
      • process.stdin.read();

          process.stdin.on("readable", function () {
              //监控键盘的输入
              //只要有输入,就会执行function
        
              var data = process.stdin.read();
        
              if(data == null) {
                  console.log("请输入一些内容");
                  return;
              }
              process.stdout.write("你输入的内容:" + data);
        
          });
  • 相关阅读:
    nyoj 329 循环小数【KMP】【求最小循环节长度+循环次数+循环体】
    转 :hdoj 4857 逃生【反向拓扑】
    hdoj 3342 Legal or Not【拓扑排序】
    hdoj 2094 产生冠军
    poj 1789 Truck History【最小生成树prime】
    转:【拓扑排序详解】+【模板】
    hdoj 1285 确定比赛名次【拓扑排序】
    poj 2031 Building a Space Station【最小生成树prime】【模板题】
    zzuoj 10408: C.最少换乘【最短路dijkstra】
    [LC] 232. Implement Queue using Stacks
  • 原文地址:https://www.cnblogs.com/bici/p/6038770.html
Copyright © 2020-2023  润新知