我使用梯形失真创建了一个带有两个列表的小项目:User和Post。管理员界面没有问题,但是查询任一列表都会引发错误(在本例中为帖子)
ReferenceError: Unknown keystone list "Post"
检查我的mongo数据库显示有一个对应的集合,我能够从Admin UI正常添加和编辑。我的帖子代码Post.js
如下:
var keystone = require("keystone");
var Types = keystone.Field.Types;
var Post = new keystone.List("Post", {
autokey: { path: "slug", from: "title", unique: true },
map: { name: "title" },
defaultSort: "-createdAt"
});
Post.add({
title: { type: String, required: true },
state: {
type: Types.Select,
options: "draft, published, archived",
default: "draft"
},
author: { type: Types.Relationship, ref: "User" },
createdAt: { type: Date, default: Date.now },
publishedAt: Date,
content: {
brief: { type: Types.Html, wysiwyg: true, height: 150 },
extended: { type: Types.Html, wysiwyg: true, height: 400 }
}
});
Post.defaultColumns = "title, state|20%, author, publishedAt|15%";
Post.register();
这是直接从keystone documentation复制粘贴的
下面的代码段getPosts.js
是第2行上发生错误的地方。
var keystone = require("keystone");
var Post = keystone.list("Post");
module.exports = function(req, res) {
return res.json(Post.model.find({}));
};
我认为我没有偏离文档太远,有人可以发现我在语法上做得不正确吗?如果有人需要查看更多内容以获取更好的主意,我有一个仓库here,它位于keystone
目录中。
答案 0 :(得分:2)
我发现了问题所在。初始化梯形失真时,我在导入模型之前先导入了路线,这就是为什么它们(模型)在运行时从未设置的原因,从而导致梯形失真引发错误。如果您遇到类似的问题,请确保仔细检查导入模型/路线/等的顺序。