我正在尝试在locomotive.js应用程序上编写测试,从互联网上的一些示例中复制/粘贴代码。即使这样,每当我运行测试时,我都会收到一条错误消息:

TypeError: string is not a function


当我检查locomotive.boot期望的参数数量(使用locomotive.boot.length)时,它表示2 ...但是在每个在线的示例中(继续,用google搜索),文档似乎都说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);
    });
});

最佳答案

LocomotiveJS存储库上有2个分支:
-0.3.x(https://github.com/jaredhanson/locomotive/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版(分支母版)开始,引导功能仅接受2个参数:env,callback
该分支的功能定义在此处(Application.prototype.boot):master / lib / application.js

因此您的代码应类似于:

locomotive.boot( "test", *yourcallback* );


希望这可以帮助。

关于node.js - Locomotive.js在调用“locomotive.boot”时引发错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22876733/

10-09 21:45