【问题标题】:break a string into usable arguments将字符串分解为可用的参数
【发布时间】:2019-07-22 09:28:43
【问题描述】:

我有一个字符串要输入到节点客户端,然后传递给服务器。 假设在客户端是这样的:

    "foo 5" or 
    "bar foo".

其中一个是函数,其中一个是我的服务器中该函数的参数。我需要将这些字符串解析到我的代码中,以便我可以以所需的方式操作它们,例如:(服务器端)

    socket.write(moduleName.foo('5'));
    //expected result: someValueOfFoo.

    socket.write(moduleName.bar('foo'));
    //expected result: someValueOfBar.

我不知道该怎么做。

【问题讨论】:

    标签: node.js string parsing arguments


    【解决方案1】:

    如果你可以假设第一个单词是函数名,第二个单词是由空格分隔的参数,那么你可以这样做:

    const args = string.split(" ")
    const func = args[0]
    const vars = args[1]
    
    socket.write(moduleName[func](vars))
    

    这是可行的,因为您可以将函数作为对象的属性访问,然后正常调用它们,例如:

    // Test module object with function foo
    const myModule = {
      foo: function(n) {
        console.log('foo was called with value:', n)
      }
    }
    
    // Test case 
    const string = 'foo 5'
    const args = string.split(" ")
    const func = args[0]
    const vars = args[1]
    
    // Call func on myModule with vars
    myModule[func](vars)

    【讨论】:

    • @AndrewSteier 很高兴为您提供帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多