流星1.4 Aldeed Collection2未开箱即用
问题描述:
我刚刚创建了一个新项目。流星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
任何想法有什么不对?
答
试试这个....
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);
答
另外,您还可以将模式为:从NPM包SIMPL型模式使用时
const Books = new Mongo.Collection("books");
Books.attachSchema(new SimpleSchema({
title: {
type: String,
label: "Title",
max: 200
},
...
}));
答
SimpleSchema不被视为一个全局变量。你必须确保:
import SimpleSchema from 'simpl-schema';
出于好奇,为什么安装collection2通过流星添加,但通过npm简单模式? collection2自动添加简单模式。那么[collection2-core](https://atmospherejs.com/aldeed/collection2-core)你有没有'npm install' [这个简单模式](https://www.npmjs.com/package/simple-schema )? –
@MichelFloyd我通过'npm'按照Aldeed自己安装'collection2-core @ 2.0.0'的指示安装它。我也'npm install'简单模式,但是同样的错误出现。 – Neonjack
你从哪里找到这些说明?没有提及npm [这里](https://atmospherejs.com/aldeed/collection2-core) –