代码之家  ›  专栏  ›  技术社区  ›  Sabuncu

require()调用后的JavaScript语法是什么?

  •  4
  • Sabuncu  · 技术社区  · 7 年前

    var args = require("minimist")(process.argv.slice(2), { string: "name"});
    

    我知道正在导入一个模块,但我不明白 require() 电话:

    require("minimist")(this part I don't understand)
    

    具体来说,第二组括号在语法上是什么?

    slice() string: "name" 打电话,怎么打?

    附言:这门课程(由凯尔辛普森)指出,上述语法将在稍后解释,但我还无法找到具体的部分,我不喜欢继续不了解一些东西。我对JS和Node.JS都是新手。

    3 回复  |  直到 7 年前
        1
  •  4
  •   Mark    7 年前

    在这种情况下,您需要的模块似乎只是返回一个函数,您可以立即使用该函数进行调用 () 并传入两个参数: process.argv.slice(2) 和 { string: "name"}

    // minimist.js
    function test(str){
        console.log(str)
        return "Called with:" + str
    }
    module.exports = test;  // exports the function
    

    你可以这样使用它:

    var arg = require('./minimist.js')("Hello") // calls the function minimist.js exported
    
        2
  •  1
  •   Little Santi    7 年前

    var args = tmp(v1, v2);
    

    如你所见,这显然是一个错误 函数调用 . 对吗?

    var tmp=require("minimist");
    var v1=process.argv.slice(2);
    var v2={ string: "name"};
    

    现在你明白了: tmp slice() -必须是 接受两个论点。

        3
  •  1
  •   Rashad Ibrahimov    7 年前

    minimist 是一个用来解析命令行参数的包,它导出一个函数。

    require('minimist') function(args, opts={}) . 然后将参数传递给这个函数。

    第一个论点 - process.argv.slice(2)

    process.argv

    node app.js --test -x 1 --name '123'
    

    你的 将是一个数组

    ['node', 'app.js', '--test', '-x', 1, '--name', '123']
    

    ['node', 'app.js'] 很明显你得打电话。所以你必须使用 .slice(2)

    ['--test', '-x', 1, '--name', '123']
    

    现在转到下一个。。。

    第二个论点 - { string: "name" }

    从minimist文档中,您可以找到以下内容

    opts.string -一个字符串或一组字符串参数名,总是作为字符串处理

    这意味着您的'name'参数将被接受为字符串。根据以上示例:

    name = '123' // not 123
    

    希望你现在明白了。如果有什么不合适的话就评论。

    推荐文章