美文网首页
07.node入门之实现命令行计算器

07.node入门之实现命令行计算器

作者: 扁扁的汤圆 | 来源:发表于2018-12-09 21:46 被阅读0次

1.实现命令行计算器之前需要了解下如何动态获取用户输入的参数
process.argv
用法是
第一个是node
第二个是脚本文件
第三个是打印的任意参数

const args = process.argv;
console.log(args);

结果:

$ node test 123 hello
[ 'C:\\dev\\nodejs\\node.exe',
  'D:\\phpStudy\\PHPTutorial\\WWW\\node\\test',
  '123',
  'hello' ]

2.计算器代码

//1.接收参数
const args = process.argv.slice(2);
//2.分析参数
if(args.length !== 3){
    console.log('参数不合法');
    // throw  new Error('参数不合法');
}
$parm1 = args[0];
$operator = args[1];
$parm2 = args[2];
let result;
//3.进行运算
switch ($operator){
    case '+':
        result = parseFloat($parm1) + parseFloat($parm2);
        break;
    case '-':
        result = parseFloat($parm1) - parseFloat($parm2);
        break;
    case '*':
    case 'X':
        result = parseFloat($parm1) * parseFloat($parm2);
        break;
    case '/':
        result = parseFloat($parm1) / parseFloat($parm2);
        break;
}
console.log(result);

3.模块化代码结构
Node采用的模块化结构是按照CommonJS规范。
模块与文件是一一对应关系,即加载一个模块,实际上就是加载对应的一个模块文件。
将操作拎出来放在一个文件中/module/calculator.js

// define(function(require, module, exports){
    //在node中实现的是CommonJS规范,不需要define
    function convert(input){
        return parseFloat(input);
    }
    function add(param1,param2){
        return convert(param1) + convert(param2);
    }
    function subtract(param1,param2){
        return convert(param1) - convert(param2);
    }
    function mutiply(param1,param2){
        return convert(param1) * convert(param2);
    }
    function divide(param1,param2){
        return convert(param1) / convert(param2);
    }
    module.exports = {add, subtract, mutiply, divide};
    //也可以写成以下形式
    // module.exports = {
    //     add: add,
    //     subtract: subtract,
    //     mutiply: mutiply,
    //     divide: divide
    // }
// })

主程序:

//1.接收参数
const args = process.argv.slice(2);
//2.分析参数
if(args.length !== 3){
    console.log('参数不合法');
    // throw  new Error('参数不合法');
}
$parm1 = args[0];
$operator = args[1];
$parm2 = args[2];
let result;
//3.进行运算
const calc = require('./module/calculator');//引入模型
switch ($operator){
    case '+':
        result = calc.add($parm1,$parm2);
        break;
    case '-':
        result = calc.subtract($parm1,$parm2);
        break;
    case '*':
    case 'X':
        result = calc.mutiply($parm1,$parm2);
        break;
    case '/':
        result = calc.divide($parm1,$parm2);
        break;
}
console.log(result);

相关文章

网友评论

      本文标题:07.node入门之实现命令行计算器

      本文链接:https://www.haomeiwen.com/subject/llgxhqtx.html