尝试完成一个简单的node.js练习,我尝试了几种变体。我怀疑我错过了一些非常简单的事情。
我创建var Calc的原因是因为我想导出'calculator'函数。
错误:
/Users/alex/zdev/react-project/calc.js:4
var add = function(){
^^^
SyntaxError: Unexpected identifier
文件calc.js :(文件已经缩短以保持简洁)
var readline = require('readline-sync');
var Calc = {
var add = function(){
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
};
}
module.export = Calc;
调用文件:
var calc = require('./calc');
var Calc = new calc.Calc();
Calc.add();
Calc.sub();
Calc.divide();
答案 0 :(得分:2)
使用函数Calc
定义新对象add
,但语法不正确。正确的语法是:
var Calc = {
add: function() {
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
}
};
答案 1 :(得分:0)
如果你想创建构造函数(我的意思是你的语法),你应该这样做:
function Calc() {
}
Calc.prototype.add = function() {
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
};
module.exports = Calc;
然后将其导入为:
var Calc = require('./calc');
var calc = new Calc();
calc.add();
calc.sub();
calc.divide();
但我更喜欢你使用ES6类语法,Calc构造函数看起来像:
class Calc {
constructor() {}
add() {
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
}
}
module.exports = Calc;
答案 2 :(得分:0)
我建议使用JavaScript classes introduced in ECMAScript 2015
class Calculator {
constructor() {
console.log("[Calc] created!");
}
static add(a, b) {
return a+b;
}
}
let Calc = new Calculator();
答案 3 :(得分:0)
解决方案如下:
呼叫文件:
var calc = require('./calc');
var Calc = calc.Calc;
Calc.add();
calc文件:
var Calc = {
add: function(){
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 + num2);
},
divide: function(){
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 / num2);
},
sub: function(){
var num1 = readline.question("num1: ");
var num2 = readline.question("num2: ");
console.log(num1 - num2);
}
}
module.exports = {Calc:Calc}
以下几行是原始错误所在:
从其他函数导入后定义我的类
Calc = calc.Calc;
使用逗号分隔我的对象属性而不是分号
},
未在模块导出中定义字典。 另外,我写'module.export'而不是'module.exports'原来是
module.exports = {Calc:Calc}
我忘了把我的parseInt()用于我的num1和num2值。