首页 > 解决方案 > 我正在使用 readline 为项目输入一个数字,但无论我输入什么,它都会出现两次,即如果我按 1,它会出现 11,等等

问题描述

我知道这可能是一个愚蠢的问题,但我刚刚开始编码,任何帮助将不胜感激。我正在使用第一部分来调用我的函数,并使用底部来发送它。它不完整,我知道,但我只是想弄清楚为什么它输入两位数。

var main = require("./toDoListMain");
var readline = require('readline');

var rl = readline.createInterface(process.stdin,process.stdout);

console.log("1. Add a list"+'\n' + "2. Select list" + '\n' + "3. Remove a list" + '\n'+ "4. View lists "+ '\n' + "5. Exit");

根据一个人之前的回答,这将决定发送哪个函数。

rl.question("What do you want to do?", function(firstAnswer){

    if(firstAnswer == 1){
        addList();
    }
    else if(firstAnswer == 2){
        showList();
        select();

    }
    else if(firstAnswer == 3){
        selectList();
        removeList();


    }
    else if (firstAnswer == 4){
        showList();


    }

    else {
        rl.close;
        process.exit();





    }


});

//第二部分开始

    var readline = require('readline');


    var rl = readline.createInterface({
        input: process.stdin,
    output: process.stdout});




    var toDoList = [];

    var list = {

         addName : function(name){
            rl.question("What is the list's name?", function(answer){
                    var listName = answer;
                    console.log("List's name: " + listName);
                    toDoList = toDoList.concat(listName);






            })},

                    //console.log(animals.push('cows'));
                        //console.log(numLists.push(listName));

         selectList : function(list){

            console.log("You chose 2"); 
            console.log(toDoList);
            rl.question("Which list do you pick? 1-"+ toDoList.length, chosenList);


            },
             removeList : function(remove){

            console.log("You chose 3"); 

                },

                     showList : function(show){
                        console.log("You chose 4");
                        console.log(toDoList);          
                    },

                     goOut : function(quit){
                    console.log("You chose 5");
                    rl.close();             
                    process.exit(); 

                    }
    }


        exports.app = list;

标签: javascriptnode.js

解决方案


你得到一个重复的条目,因为你在第二部分创建了第二个 readline 接口,即你readline.createInterface在你的应用程序中调用了两次。

要解决您的问题,请删除对readline.createInterface.


推荐阅读