2016-12-31 48 views
0

我刚刚创建了一个新项目。流星1.4 Aldeed Collection2未开箱即用

这是我加入到我的项目包:

aldeed:[email protected] 
aldeed:autoform 

我还安装了NPM包,meteor npm install --save simpl-schema

我创建了一个/lib文件夹。

在这里面,我创建了一个common.js文件与此代码:

var Books = new Mongo.Collection("books"); 

var Schemas = {}; 

Schemas.Book = new SimpleSchema({ 
    title: { 
     type: String, 
     label: "Title", 
     max: 200 
    }, 
    author: { 
     type: String, 
     label: "Author" 
    }, 
    copies: { 
     type: SimpleSchema.Integer, 
     label: "Number of copies", 
     min: 0 
    }, 
    lastCheckedOut: { 
     type: Date, 
     label: "Last date this book was checked out", 
     optional: true 
    }, 
    summary: { 
     type: String, 
     label: "Brief summary", 
     optional: true, 
     max: 1000 
    } 
}); 

Books.attachSchema(Schemas.Book); 

当我重新启动应用程序,它崩溃,扔我:

=> Exited with code: 1 
W20161231-01:03:28.126(-5)? (STDERR) /home/mehdi/.meteor/packages/meteor-tool/.1.4.2_3.17tso1e++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280 
W20161231-01:03:28.127(-5)? (STDERR)      throw(ex); 
W20161231-01:03:28.127(-5)? (STDERR)      ^
W20161231-01:03:28.127(-5)? (STDERR) 
W20161231-01:03:28.127(-5)? (STDERR) TypeError: Cannot read property 'definitions' of undefined 
W20161231-01:03:28.127(-5)? (STDERR)  at /home/mehdi/workspace/collection/node_modules/simpl-schema/dist/SimpleSchema.js:778:39 
W20161231-01:03:28.128(-5)? (STDERR)  at Function._.each._.forEach (/home/mehdi/workspace/collection/node_modules/underscore/underscore.js:158:9) 
W20161231-01:03:28.128(-5)? (STDERR)  at checkSchemaOverlap (/home/mehdi/workspace/collection/node_modules/simpl-schema/dist/SimpleSchema.js:777:24) 
W20161231-01:03:28.128(-5)? (STDERR)  at SimpleSchema.extend (/home/mehdi/workspace/collection/node_modules/simpl-schema/dist/SimpleSchema.js:407:7) 
W20161231-01:03:28.128(-5)? (STDERR)  at new SimpleSchema (/home/mehdi/workspace/collection/node_modules/simpl-schema/dist/SimpleSchema.js:96:10) 
W20161231-01:03:28.128(-5)? (STDERR)  at [object Object].c2AttachSchema [as attachSchema] (packages/aldeed:collection2-core/collection2.js:35:10) 
W20161231-01:03:28.128(-5)? (STDERR)  at meteorInstall.lib.common.js (lib/common.js:33:7) 
W20161231-01:03:28.128(-5)? (STDERR)  at fileEvaluate (packages/modules-runtime.js:181:9) 
W20161231-01:03:28.128(-5)? (STDERR)  at require (packages/modules-runtime.js:106:16) 
W20161231-01:03:28.129(-5)? (STDERR)  at /home/mehdi/workspace/collection/.meteor/local/build/programs/server/app/app.js:60:1 

任何想法有什么不对?

+0

出于好奇,为什么安装collection2通过流星添加,但通过npm简单模式? collection2自动添加简单模式。那么[collection2-core](https://atmospherejs.com/aldeed/collection2-core)你有没有'npm install' [这个简单模式](https://www.npmjs.com/package/simple-schema )? –

+0

@MichelFloyd我通过'npm'按照Aldeed自己安装'collection2-core @ 2.0.0'的指示安装它。我也'npm install'简单模式,但是同样的错误出现。 – Neonjack

+0

你从哪里找到这些说明?没有提及npm [这里](https://atmospherejs.com/aldeed/collection2-core) –

回答

0

试试这个....

var Books = new Mongo.Collection("books"); 

Books.schema = new SimpleSchema({ 
    title: { 
     type: String, 
     label: "Title", 
     max: 200 
    }, 
    author: { 
     type: String, 
     label: "Author" 
    }, 
    copies: { 
     type: SimpleSchema.Integer, 
     label: "Number of copies", 
     min: 0 
    }, 
    lastCheckedOut: { 
     type: Date, 
     label: "Last date this book was checked out", 
     optional: true 
    }, 
    summary: { 
     type: String, 
     label: "Brief summary", 
     optional: true, 
     max: 1000 
    } 
}); 

Books.attachSchema(Books.schema); 
0

另外,您还可以将模式为:从NPM包SIMPL型模式使用时

const Books = new Mongo.Collection("books"); 
Books.attachSchema(new SimpleSchema({ 
    title: { 
    type: String, 
    label: "Title", 
    max: 200 
    }, 
    ... 
})); 
1

SimpleSchema不被视为一个全局变量。你必须确保:

import SimpleSchema from 'simpl-schema';