运行Node程序时出错。模块'提示'不起作用

时间:2016-01-06 01:36:50

标签: javascript node.js

我正在尝试使用Node.js的二次方程。我有一个名为'discriminant.js'的文件,它只是计算提供参数的判别值。 我有另一个名为'qudratic.js'的文件,它只会在计算后返回根值。 最后我有一个名为'solve.js'的文件,其代码如下:

var quad = require('./qudratic');

var prompt = require('prompt');

prompt.get(['a','b','c'], function(err, result){

if (err) {return onErr(err);}
console.log('Command-line input received');
console.log('a' + result.a);
console.log('b' + result.b);
console.log('c' + result.c);
});

 quad(result.a,result.b,result.c, function(err, quadsolve){
    if (err){
       console.log('Error:', err)
     }
    else{
          console.log("Roots are "+quadsolve.root1() + " "+        quadsolve.root2());
        }

   });

当我运行时:节点解决出现以下错误:

quad(result.a,result.b,result.c, function(err, quadsolve){
 ^

ReferenceError: result is not defined
at Object.<anonymous> (/home/sijan/workspace...../NODE/first/node_modules/solve.js:15:6)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
at startup (node.js:136:18)
at node.js:963:3

1 个答案:

答案 0 :(得分:3)

result位于prompt回调中,quad位于其外部。因此result将是undefined

quad代码移到回调中。