包括多个未定义的变量

时间:2019-05-27 12:48:26

标签: javascript

我正在尝试制作一个简单的Discord机器人,该机器人将接收用户的输入并将其输出为另一个用户的新昵称。可以,但是新的昵称需要3个单词。有没有办法让它与任意数量的输入变量一起使用?

它首先只能使用1个单词,但是现在我试图添加几个单词,并在它们之间留有空格。除非新的昵称由少于或少于3个单词组成,否则这现在也适用。我真的不知道我在做什么,我很惊讶我什至走了这么远

server {
    listen 8001 ssl;
    server_name localhost;

    ssl_protocols TLSv1.1 TLSv1.2;

    # Certificates
    ssl_certificate ...;
    ssl_certificate_key ...;

    ssl_client_certificate ...;
    ssl_verify_client on;
    ssl_verify_depth 2;
    ssl_session_cache off;

    location / {

        if ($ssl_client_verify != SUCCESS) {
          return 403;
        }

        proxy_set_header X-SSL-Escaped-Cert $ssl_client_raw_cert;
        proxy_set_header X-SSL-User-DN $ssl_client_s_dn;
        proxy_set_header X-SSL-Authenticated $ssl_client_verify;

        include proxy_params;
        proxy_pass http://unix:/home/.../.sock;
   }
}

如果昵称缺少变量,我会在新昵称中得到一个“ undefined”,然后不包括3个以上的数字。

2 个答案:

答案 0 :(得分:0)

请检查您的论点,而不是共鸣。结果

   if (args.length < 3){
        message.channel.send("Ey, bruk .navn @person nyttnavn din jævel")
    } else {
        let userID = userMention.id
        message.guild.members.get(userID).setNickname(userNick);
}

答案 1 :(得分:0)

您可以为此使用数组函数slicejoin

function navnCommand(arguments, message) {
  let args = message.content.split(" ");
  let words = args.slice(2, 5); // remove the second argument to allow any number of words
  if (!words.length) {
    // Handle no words found!
  }
  let userNick = words.join(" ");
  return userNick;
}

console.log(navnCommand(null, { content: ".navn UNKNOWN Adam" }));
console.log(navnCommand(null, { content: ".navn UNKNOWN Adam Bob" }));
console.log(navnCommand(null, { content: ".navn UNKNOWN Adam Bob Charly" }));
console.log(navnCommand(null, { content: ".navn UNKNOWN Adam Bob Charly Donald" }));