У меня есть файл js, который я пытаюсь использовать в приложении node.js. Я перепробовал все, что мог придумать, и у меня продолжают возникать проблемы либо с не определенными методами, либо с несуществующими объектами.
Это js-файл, который я включаю:
var $ = require('jquery');
var CountdownTimer = function(options){
this.settings = $.extend(
{
seconds: 60,
onTick: null,
onComplete: null
},options || {});
};
CountdownTimer.prototype = {
start: function(){
this.reset();
this.interval = window.setInterval($.proxy(this.tick, this), 1000);
},
reset: function(){
if(this.interval){
clearInterval(this.interval);
}
this.secondsRemaining = this.settings.seconds;
this.tick();
},
tick: function(){
this.hoursRemaining = Math.floor(this.secondsRemaining / (60 * 60));
this.minutesRemaining = this.secondsRemaining % (60 * 60);
this.hourMinutesRemaining = Math.floor(this.minutesRemaining / 60);
this.minuteSecondsRemaining = this.minutesRemaining % 60;
this.hourSecondsRemaining = Math.ceil(this.minuteSecondsRemaining);
this.fHrs = this.formatNumber(this.hoursRemaining);
this.fMins = this.formatNumber(this.hourMinutesRemaining);
this.fSecs = this.formatNumber(this.hourSecondsRemaining);
if(this.settings.onTick){
console.log(this.settings.onTick);
this.settings.onTick();
}
if(this.secondsRemaining == 0){
this.complete();
}
this.secondsRemaining -= 1;
},
complete: function(){
clearInterval(this.interval);
if(this.settings.onComplete){
this.settings.onComplete();
}
},
formatNumber: function(n){
var s = String(n);
if(s.length == 1){
s = '0' + s;
}
return s;
}
}
module.exports = CountdownTimer;
Я звоню в app.js так:
var timer = new require('./countdown.js').CountdownTimer({
seconds: 80000,
onTick: function(){
//do something
},
onComplete: function(){
alert('complete');
}
});
timer.start();
Ошибка, которую я сейчас получаю:
TypeError: Функция объекта (опции) {
this.settings = $ .extend ({
секунд: 60,
onTick: ноль,
onComplete: null}, параметры || {}); } не имеет метода 'CountdownTimer'
Есть идеи, что я делаю не так?