zoukankan      html  css  js  c++  java
  • 一个简单的nodejs项目(cat-names)分析

    https://github.com/sindresorhus/cat-names

    一个非常简单的nodejs项目,用来方便的获取猫猫的名字;

    安装

    npm install --save cat-names

    用法:

    const catNames = require('cat-names');

    //获取随机猫名

    catNames.random();

    // => 'Max'

    index.js源码

    非常简单,不解释

    'use strict';
    var uniqueRandomArray = require('unique-random-array');
    var catNames = require('./cat-names.json');
    
    exports.all = catNames;
    exports.random = uniqueRandomArray(catNames);

    cli.js源码

    #!/usr/bin/env node
    'use strict';
    var meow = require('meow');
    var catNames = require('./');
    
    var cli = meow([
        'Examples',
        '  $ cat-names',
        '  Max',
        '',
        '  $ cat-names --all',
        '  Abby',
        '  Angel',
        '  ...',
        '',
        'Options',
        '  --all   Get all names instead of a random name'
    ]);
    
    console.log(cli.flags.all ? catNames.all.join('
    ') : catNames.random());

    这里用到了一个meow模块,这是一个CLI app助手模块。

    当我们node cli.js --help 想查看使用方法

    (注意当全局安装后应该cat-names --help)

    就会输出

      Get popular cat names
    
      Examples
        $ cat-names
        Max
    
        $ cat-names --all
        Abby
        Angel
        ...
    
      Options
        --all   Get all names instead of a random name

    其中"Get popular cat names"是package.json定义的description。

    当我们node cli.js  abc --all 

    abc和--all都是参数。

    cli就会包含

    {
      input: ['abc'],
        flags: {all: true}
    }

    也就是说当

    node cli.js --all,因为参数all参数,实际就会调用catNames.all.join(' ')。而 catNames.all就是读取cat-names.json,这里记录的是所有的猫猫的名字!

  • 相关阅读:
    monitor system
    monitor disk
    manage account
    windows
    backup daily
    shell 脚本编程概述
    OGNL表达式
    Struts2各个功能详解(2)-输入校验和拦截器
    struts2各个功能详解(1)----参数自动封装和类型自动转换
    Struts2源码解析2
  • 原文地址:https://www.cnblogs.com/mafeifan/p/5982976.html
Copyright © 2011-2022 走看看