Javascript 在我的代码中发现问题并识别出其他问题

Javascript 在我的代码中发现问题并识别出其他问题,javascript,Javascript,CMD窗口正在发布 C:\Users\Dell\Desktop\PROGRA~1>节点反转~2.js events.js:160 throw er; // Unhandled 'error' event ^ Error: ENOENT: no such file or directory, open 'C:\Users\Dell\Desktop\PROGRA~1\Input_File.txt' at Error (native) 我不知道它可能引用了什么,但我相信它可能是我用来运

CMD窗口正在发布

C:\Users\Dell\Desktop\PROGRA~1>节点反转~2.js
events.js:160

  throw er; // Unhandled 'error' event
  ^

Error: ENOENT: no such file or directory, open  
'C:\Users\Dell\Desktop\PROGRA~1\Input_File.txt'
at Error (native)
我不知道它可能引用了什么,但我相信它可能是我用来运行代码的
Node.js
软件的一部分

感谢您提供的任何帮助。很抱歉,如果这个问题看起来很基本,或者有点不言自明,我就是看不出问题所在

也可能是因为我没有适当的代码来执行此任务

Input_File.txt
已关闭

15 12 2 + -4 * + 3 - 
里面有数据。我不知道这是否会有任何帮助。这是我试图让程序解决的反向抛光函数

'use strict' ;

var ArrayStack = require ( './ArrayStack' ) ;
const fs = require ( 'fs' ) ;
const readline = require ( 'readline' ) ;

var ArrayStack2 = new ArrayStack () ;
var readStream = fs.createReadStream ( 'Input_File.txt', 'utf8' ) ;
var rl = readline.createInterface ( {input:readStream} ) ;
rl.on ('line', function (inputLine)
            {
            console.log(inputLine) ;
            var tokens =  inputline.split( ' ' ) ;
            for ( var i = 0 ; i < tokens.length ; i ++ )
                {
                const token = tokens[i] ;
                var tokenCategory = 'operand' ;
                if ( token === '+' || token === '-' || token === '/' || token === '*' ) 
                {
                    tokenCategory = 'operator' ;
                    var B = ArrayStack2.pop() ;
                    var A = ArrayStack2.pop() ;
                    if ( token === '+' )
                    {
                        var answer = A + B ;
                        ArrayStack2.push(answer) ;
                                            }
                    elseif ( token === '-' )
                    {
                        var answer = A - B ;
                        ArrayStack2.push(answer) ;
                    }
                    elseif ( token === '/' )
                    {
                        var answer = A / B ;
                        ArrayStack2.push(answer) ;
                    }
                    elseif ( token === '*' )
                    {
                        var answer = A * B ;
                        ArrayStack2.push(answer) ;
                    }//end of sub conditional statement

                }//end of if statement
                else 
                {
                    ArrayStack2.push(token) ;
                    console.log (ArrayStack) ;
                }
              }//end of for loop

            });//end of function  

            rl.on ( 'close', function () {
            console.log('File now closed.');
            }) ; // end function   
这是引用ArrayStack类时使用的空错误类

'use strict' ;

class EmptyError extends Error
    {
    constructor ( message )
        {
        // Ask superclass' constructor to initialize this object,
        // including creating its "message" property ...
        super ( message ) ;
        } // end constructor
    } // end EmptyError class

module.exports = EmptyError ;

'operator'=='-'
等等都是字符串比较,而
operator
-
/
*

虽然未测试,但我认为您已将其与
标记进行了比较,但未与运算符进行比较

if (token === '+' || token === '-' || token === '/' || token === '*'); {
  //Rest of code
  if (token === '+') {
} else if (token === '-') {
    // rest of code
  }
// rest of code
}

您缺少基本的if-else括号。正如@brk所说,您正在比较两个字符串 “运算符”和“+”、“-”等 这是更新后的代码。检查这是否适合你

'use strict' ; 

var ArrayStack = require ( './ArrayStack' ) ;
const fs = require ( 'fs' ) ;
const readline = require ( 'readline' ) ;

new ArrayStack () ;
var readStream = fs.createReadStream ( 'Input_File.txt', 'utf8' ) ;
var rl = readline.createInterface ( {input:readStream} ) ;
rl.on ('line', function (inputLine)
            {
            console.log(inputLine) ;
            var tokens =  inputline.split( ' ' ) ;
            for ( var i = 0 ; i < tokens.length ; i ++ )
                {
                const token = tokens[i] ;
                var tokenCategory = 'operand' ;
                if ( token === '+' || token === '-' || token === '/' || token === '*' ) 
                {
                    tokenCategory = 'operator' ;
                    var B = ArrayStack.pop() ;
                    var A = ArrayStack.pop() ;
                    if ( token === '+' )
                    {
                        var answer = A + B ;
                        ArrayStack.push(answer) ;
//the error shows here where CMD recognizes the else as an 'unexpected token' 
//have I missed something in setting up my nesting properly? 
                                            }
                    elseif ( token === '-' )
                    {
                        var answer = A - B ;
                        ArrayStack.push(answer) ;
                    }
                    elseif ( token === '/' )
                    {
                        var answer = A / B ;
                        ArrayStack.push(answer) ;
                    }
                    elseif ( token === '*' )
                    {
                        var answer = A * B ;
                        ArrayStack.push(answer) ;
                    }//end of sub conditional statement

                }//end of if statement
                else 
                {
                    ArrayStack.push(token) ;
                    console.log (ArrayStack) ;
                }
              }//end of for loop

            });//end of function  


            rl.on ( 'close', function () {
            console.log('File now closed.');
            }) ; // end function
“严格使用”;
var ArrayStack=require('./ArrayStack');
常数fs=要求('fs');
const readline=require('readline');
新ArrayStack();
var readStream=fs.createReadStream('Input_File.txt','utf8');
var rl=readline.createInterface({input:readStream});
rl.on('line',函数(inputLine)
{
控制台日志(输入线);
var标记=inputline.split(“”);
for(var i=0;i
我不知道你的文本文件在这里是如何工作的。但是我已经更新了你的代码,几乎没有什么变化。你可以试试这个

var ArrayStack = require ( './ArrayStack' ) ;
const fs = require ( 'fs' ) ;
const readline = require ( 'readline' ) ;

var myStack
var readStream = fs.createReadStream ( 'Input_File.txt', 'utf8' ) ;
var rl = readline.createInterface ( {input:readStream} ) ;
rl.on ('line', function (inputLine)
            {
            console.log(inputLine) ;
            var tokens =  inputLine.split( ' ' ) ;
            ArrayStack.init(tokens, function (err, data) {
    if (err) {
        console.error('Error received');
    }
    else {
         myStack = data;
        console.log('pushed data '+data.first());

    }
});                 
            for ( var i = 0 ; i < tokens.length ; i ++ )
                {
                const token = tokens[i] ;
                var tokenCategory = 'operand' ;
                if ( token === '+' || token === '-' || token === '/' || token === '*' ) 
                {
                    tokenCategory = 'operator' ;
                    var B = myStack.pop();
                    var A = myStack.pop();
                    if ( token === '+' )
                    {
                        var answer = A + B ;
                        myStack.push(answer) ;
                                            }
                    elseif ( token === '-' )
                    {
                        var answer = A - B ;
                        myStack.push(answer) ;
                    }
                    elseif ( token === '/' )
                    {
                        var answer = A / B ;
                        myStack.push(answer) ;
                    }
                    elseif ( token === '*' )
                    {
                        var answer = A * B ;
                        myStack.push(answer) ;
                    }//end of sub conditional statement

                }//end of if statement
                else 
                {
                    myStack.push(token) ;
                    console.log (myStack) ;
                }
              }//end of for loop
            });//end of function  

            rl.on ( 'close', function () {
            console.log('File now closed.');
            }) ; // end function
var ArrayStack=require('./ArrayStack');
常数fs=要求('fs');
const readline=require('readline');
var myStack
var readStream=fs.createReadStream('Input_File.txt','utf8');
var rl=readline.createInterface({input:readStream});
rl.on('line',函数(inputLine)
{
控制台日志(输入线);
var标记=inputLine.split(“”);
init(令牌、函数(错误、数据){
如果(错误){
console.error(“收到错误”);
}
否则{
myStack=数据;
log('pushed data'+data.first());
}
});                 
for(var i=0;i
之所以
else
是一个“意外标记”,是因为您没有正确地使用
{
}
if
/
else if
/
else
结构

科尔
var ArrayStack = require ( './ArrayStack' ) ;
const fs = require ( 'fs' ) ;
const readline = require ( 'readline' ) ;

var myStack
var readStream = fs.createReadStream ( 'Input_File.txt', 'utf8' ) ;
var rl = readline.createInterface ( {input:readStream} ) ;
rl.on ('line', function (inputLine)
            {
            console.log(inputLine) ;
            var tokens =  inputLine.split( ' ' ) ;
            ArrayStack.init(tokens, function (err, data) {
    if (err) {
        console.error('Error received');
    }
    else {
         myStack = data;
        console.log('pushed data '+data.first());

    }
});                 
            for ( var i = 0 ; i < tokens.length ; i ++ )
                {
                const token = tokens[i] ;
                var tokenCategory = 'operand' ;
                if ( token === '+' || token === '-' || token === '/' || token === '*' ) 
                {
                    tokenCategory = 'operator' ;
                    var B = myStack.pop();
                    var A = myStack.pop();
                    if ( token === '+' )
                    {
                        var answer = A + B ;
                        myStack.push(answer) ;
                                            }
                    elseif ( token === '-' )
                    {
                        var answer = A - B ;
                        myStack.push(answer) ;
                    }
                    elseif ( token === '/' )
                    {
                        var answer = A / B ;
                        myStack.push(answer) ;
                    }
                    elseif ( token === '*' )
                    {
                        var answer = A * B ;
                        myStack.push(answer) ;
                    }//end of sub conditional statement

                }//end of if statement
                else 
                {
                    myStack.push(token) ;
                    console.log (myStack) ;
                }
              }//end of for loop
            });//end of function  

            rl.on ( 'close', function () {
            console.log('File now closed.');
            }) ; // end function
if (condition) {
  statement1
} else if (condition) {
  statement2
} else {
  statement3
}
if ( token === '+' || token === '-' || token === '/' || token === '*' ) ;
function (inputLine) {
  console.log(inputLine);
  var tokens = inputline.split(' ');
  for (var i = 0; i < tokens.length; i++) {
    const token = tokens[i];
    var tokenCategory = 'operand';
    if (token === '+' || token === '-' || token === '/' || token === '*') {
      tokenCategory = 'operator';
      var B = ArrayStack.pop();
      var A = ArrayStack.pop();
      if (token === '+') {
        var answer = A + B;
        ArrayStack.push(answer);
      } else if (token === '-') {
        var answer = A - B;
        ArrayStack.push(answer);
      } else if (token === '/') {
        var answer = A / B;
        ArrayStack.push(answer);
      } else if (token === '*') {
        var answer = A * B;
        ArrayStack.push(answer);
      } //end of sub conditional statement
    } //end of if statement
    else {
      ArrayStack.push(token);
      console.log(ArrayStack);
    }
  } //end of for loop    
} //end of function