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* );

Надеюсь это поможет.

Другие вопросы по тегам