【讲义】第三课:Node.js 命令行

直播讲义

(方方) #1

视频

请看 11 到 15 章节

预习

题目

作业

题目


前置要求

  1. 安装 Node.js
  2. 注册 GitHub.com

bash 脚本

  1. 写一个脚本文件 show.sh,满足以下需求:
    运行 /path/to/show.sh,输出当前目录下的所有文件。

    ls -a
  2. 写一个脚本文件 view.sh,满足以下需求:
    运行 /path/to/view.sh xxx,如果 xxx 文件存在,就输出 xxx 内容;如果 xxx 文件不存在,就输出「xxx 不存在」

    if [ ! -f "$1" ]; then
      echo "$1 不存在"
      exit 1 # 失败
    else
      cat $1
      exit 0 # 成功
    fi

总结

  1. 参数是什么
  2. if...else...
  3. 异常处理
  4. 返回值

什么是 API

什么是 Node.js

什么是 npm

是一个 JS 代码仓库

《npm 是干什么的》

npm install jQuery

类似

curl -L https://github.com/jquery/jquery/archive/3.1.1.zip > download.zip

配置 npm

  1. 运行 npm config set loglevel http,让你知道 npm 发的每一个请求
  2. 运行 npm config set progress false,关闭那个进度条
  3. 为了让你的安装速度变快,运行 npm config set registry https://registry.npm.taobao.org/
    • 想要恢复成原样,只需要 npm config delete registry 即可

用 Node.js 写一个命令行程序

  1. 写一个脚本文件 show.js,满足以下需求:
    运行 node /path/to/show.js,输出当前目录下的所有文件。

    #!/usr/bin/env node
    var fs = require("fs");
    console.log("查看当前目录");
    fs.readdir(process.cwd(),function(error, files){
       if (error) {
           return console.error(error);
       }
       files.forEach( function (file){
           console.log( file );
       });
    });
  2. 写一个脚本文件 view.js,满足以下需求:
    运行 node /path/to/view.js xxx,如果 xxx 文件存在,就输出 xxx 内容;如果 xxx 文件不存在,就输出「xxx 不存在」

    #!/usr/bin/env node
    var file = process.argv[2]
    var fs = require('fs');
    fs.stat(file, function(err, stat){
      if(stat&&stat.isFile()) {
        console.log('文件存在');
        var data = fs.readFileSync(file,"utf-8");  
        console.log(data);  
      } else {
        console.log('文件不存在或不是标准文件');
      }
    });

分享你的代码

  • npm init 的到 package.json
  • 修改 package.json,添加 bin,注意自己写的时候,不要写错任何一个字符

    {
      "name": "frank-test-20170221",
      "version": "1.0.0",
      "description": "这是一个测试文件,不要下载",
      "main": "show.js",
      "dependencies": {
        "jquery": "^3.1.1"
      },
      "devDependencies": {},
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "bin":{
        "view":"view.js",
        "show":"show.js"
      },
      "author": "frankfang",
      "license": "ISC"
    }
  • npm adduser

  • npm publish

如何学习

  1. 很多东西的原理很复杂,比如「汽车」
  2. 你可以在了解这个东西的原理之前,通过「搜索、问人」,来学会「使用汽车——开车」
  3. 你在使用的过程中,可以一点一点的摸索原理

把上面的「汽车」换成「编程」


(方方) #2

(方方) #3