流星版本:1.2.1
使用来自themeteorchef的基础框架
并使用一个软件包themeteorchef:seeder
当我尝试在一个干净的新项目(没有基础启动器)中使用播种器包时,它工作正常。但是,在我从基础启动器创建的项目中,它会在调用Seed函数的代码部分中抛出Can't Wait Without A Fiber
错误。
当我尝试调用find
和insert
等数据库函数时,我发生了同样的事情。我将fibers
添加到app.use
package.js
库列表后,将代码包含在光纤功能中
这是我的package.js
文件
Package.describe({
name: 'team:library',
version: '0.0.1',
// Brief, one-line summary of the package.
summary: '',
// URL to the Git repository containing the source code for this package.
git: '',
// By default, Meteor will default to using README.md for documentation.
// To avoid submitting documentation, set this field to null.
documentation: 'README.md'
});
Npm.depends({
library: "link-to-a-github-commit",
util: '0.10.3'
});
Package.onUse(function(api) {
api.versionsFrom('1.2.1');
api.use(['ecmascript', 'templating', 'check', 'mongo', 'kadira:flow-router', 'themeteorchef:seeder', 'fibers']);
// Load the lib directory before all other files are loaded
api.addFiles( 'lib/constants/tokens.js', 'server' );
api.addFiles('client/templates/library-widget.html', 'client');
api.addFiles('client/templates/library-widget.js', 'client');
api.addFiles('client/templates/user-folder-list-widget.html', 'client');
api.addFiles('client/templates/user-folder-list-widget.js', 'client');
api.addFiles('client/templates/index.html', 'client');
api.addFiles( 'collections/LibraryUsers.js', 'server' );
api.export( 'LibraryUsers', 'server' );
api.addFiles('server/startup.js', 'server');
api.addFiles('server/methods/library-team.js', 'server');
});
Package.onTest(function(api) {
api.use('ecmascript');
api.use('tinytest');
api.use('team:library');
api.addFiles('library-tests.js');
});
我在我的包中的server / startup.js文件中调用Seed,如下所示:
Seed( 'Products', {
min: 5,
environments: [ 'development', 'staging', 'production' ],
model( index ) {
return {
name: faker.commerce.product(),
price: faker.commerce.price()
};
}
});
我将它包含在Fiber中,如下所示
try {
Fiber( function() {
Seed( 'Products', {
min: 5,
environments: [ 'development', 'staging', 'production' ],
model( index ) {
return {
name: faker.commerce.product(),
price: faker.commerce.price()
};
}
});
});
} catch( error ) {
console.log( error );
}
在我的包文件中包含光纤后,如上面的包文件所示。我收到的错误信息是
[ReferenceError: Fiber is not defined]
可能导致此错误的原因是什么?
答案 0 :(得分:0)
将以下行放在你的光纤之前(函数(){...'可能会解决该错误,因为它定义了你的' Fiber'对象使用:
Fiber = Npm.require('fibers');
或者只是这可能也有效,不确定:
Fiber = require("fibers")