Locomotive.js выдает ошибку при вызове "locomotive.boot"
Я пытаюсь написать тесты для моего приложения locomotive.js, буквально скопировать / вставить код из некоторых примеров в Интернете. Несмотря на это, всякий раз, когда я запускаю свои тесты, я получаю сообщение об ошибке
TypeError: string is not a function
Когда я проверяю количество аргументов, ожидаемых locomotive.boot (используя locomotive.boot.length), он говорит 2... Но в каждом отдельном примере онлайн (давай, погуглите его) документация, кажется, говорит 3. Кто-нибудь знает что я делаю не так?
Вот мой код:
var locomotive = require('locomotive'),
should = require('should'),
request = require('supertest');
var app, server;
describe('Application', function() {
before(function(done) {
locomotive.boot( __dirname+"/..", "test", function(err, express) {
if (err) throw err;
app = this;
express.listen(4000, '0.0.0.0', function() {
var addr = this.address();
console.log('Server started. [Env: '+SOPS.conf.get('app:environment')+'] [Addr: '+addr.address+'] [Port: '+addr.port+']');
done();
});
server = express;
});
});
it('should have started the app', function(){
should.exist(app);
should.exist(express);
});
});
1 ответ
В репозитории LocomotiveJS есть 2 филиала: - 0.3.x ( https://github.com/jaredhanson/locomotive/tree/0.3.x automotive/tree/0.3.x) - мастер ( https://github.com/jaredhanson/locomotive/tree/master)
Если вы используете версию 0.3.x, ваш код должен работать, объявление функции фактически показывает 4 аргумента: dir, env, options, callback, вы можете посмотреть определение функции здесь (Locomotive.prototype.boot): 0.3.x/lib/locomotive/index.js
Начиная с версии 0.4.x (master-ветка), загрузочная функция принимает только 2 аргумента: env, callback, определение функции для этой ветки здесь (Application.prototype.boot): master/lib/application.js
поэтому ваш код должен выглядеть примерно так:
locomotive.boot( "test", *yourcallback* );
Надеюсь это поможет.