我正在尝试使用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
答案 0 :(得分:3)
result
位于prompt
回调中,quad
位于其外部。因此result
将是undefined
。
将quad
代码移到回调中。