是否可以通过指定值条件来限制KeystoneJS的关系类型中的可用显示选项?
基本上,模型有两组数组字段,而不是让管理员用户从字段中选择任何项目,我想仅限于属于特定集合_id的项目.
我在试图隐藏ID列时遇到了麻烦,由Keystone List模板自动生成.有没有办法压制这个列?文档很少涉及框架的基本用法.
在KeystoneJS的一个项目上工作,我很难搞清楚猫鼬关系的位置.
根据keystone docs,假设我们有以下模型:User和Post.现在帖子与用户有关系,所以我会写:
Post.add({
author: { type: Types.Relationship, ref: 'User' }
});
Run Code Online (Sandbox Code Playgroud)
然后:
User.relationship({ path: 'posts', ref: 'Post', refPath: 'author' });
Run Code Online (Sandbox Code Playgroud)
现在,我希望能够看到有关该用户的所有帖子,而无需查询两个用户和帖子.例如,如果我查询了一个用户对象,我希望能够user.posts访问这些相关帖子.你能用mongoose/keystone做到这一点吗?
我尝试自定义Keystonejs Admin UI主题:更改原色等。
所以,我要覆盖keystone.less它位于node_modules:
.
|____node_modules
| |____keystone
| | |____public
| | | |____styles
| | | | |____keystone.less
|____public
| |____styles
| | |____keystone.less // This will overwrite the UI
Run Code Online (Sandbox Code Playgroud)
新的 keystone.less 内容:
// Elemental
// ------------------------------
@import "@{elementalPath}/less/elemental.less";
// KEYSTONE VARIABLES
@import "../../node_modules/keystone/admin/public/styles/variables.less";
// KEYSTONE AUTH
@import "../../node_modules/keystone/admin/public/styles/auth.less";
// KEYSTONE SETUP
@import "../../node_modules/keystone/admin/public/styles/keystone/animation.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/base.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/dashboard.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/forms.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/navigation.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/tables.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/utils.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/list.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/list-dropzone.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/item.less";
@import "../../node_modules/keystone/admin/public/styles/keystone/toolbar.less"; …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用KeystoneJS的Passport身份验证插件.
如果用户帐户存在并且与所使用的社交网络绑定,则一切都很有效.但是,在创建新用户时,使用config选项'auto create user': true,我最终会在oauth回调路由上出现500错误.日志说它是验证错误.
ValidationError: Validation failed
at model.Document.invalidate (/app/node_modules/keystone/node_modules/mongoose/lib/document.js:1021:32)
at /app/node_modules/keystone/node_modules/mongoose/lib/document.js:970:16
at validate (/app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:610:7)
at /app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:627:9
at Array.forEach (native)
at SchemaString.SchemaType.doValidate (/app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:614:19)
at /app/node_modules/keystone/node_modules/mongoose/lib/document.js:968:9
at process._tickCallback (node.js:419:13)
Run Code Online (Sandbox Code Playgroud)
可能是什么导致了这个?
编辑
用户模型:
var keystone = require('keystone'),
Types = keystone.Field.Types,
social = require('keystone-social-login');
/**
* User Model
* ==========
*/
var User = new keystone.List('User');
User.add({
name: { type: Types.Name, required: true, index: true },
email: { type: Types.Email, initial: true, required: true, index: true …Run Code Online (Sandbox Code Playgroud) 我只是从一个新项目的Keystone开始,找不到任何描述向管理UI添加自定义功能的文档。
一些我需要实现但找不到任何资源的东西:
抱歉,如果这些问题已经讨论/记录在案,但我找不到与它们相关的任何信息。
感谢并期待您对这些问题的想法。
我们在我们的一个项目中使用 keystone 框架工作,我试图将 .env 文件变量用于我的 .js 文件之一以连接 http 站点。我使用了 dotenv 并调用了 process.env.xxyz,其中 xxyz 是变量我们正在使用。请让我知道是否有任何其他方法可以从 .env 文件中调用变量。
我想在adminUI上使用来自Web服务的字段的组合框。我正在考虑使用预先的“查找”挂钩获取数据,然后覆盖架构中“受众”属性的选项属性。
架构:
Compliance.add({
title: { type: Types.Text, required: true, initial: true, index: true },
url: { type: Types.Url, required: true, initial: true },
position: { type: Types.Number, initial: true },
audience: { type: Types.Select, options: [], many: true, initial: true},
});
Run Code Online (Sandbox Code Playgroud)
钩:
Compliance.schema.pre('find', async function(next) {
let audiences = await audienceService.getAudiences();
next();
})
Run Code Online (Sandbox Code Playgroud)
但是我没有找到绑定数据的方法。任何想法如何做到这一点?
谢谢
我正在连接到 MongoDB Atlas 并收到身份验证失败错误。
那是我的连接字符串:
mongodb://user:<password>@mongo-cluster-shard-00-00-ixqtu.mongodb.net:27017,mongo-cluster-shard-00-01-ixqtu.mongodb.net:27017,mongo-cluster-shard-00-02-ixqtu.mongodb.net:27017/test?ssl=true&replicaSet=mongo-cluster-shard-0&authSource=admin&retryWrites=true
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
------------------------------------------------
Mongoose connection "error" event fired with:
{ MongoError: authentication fail
at Function.MongoError.create (/mnt/c/WEB/keystone-md2/node_modules/mongoose/node_modules/mongodb-core/lib/error.js:31:11)
at /mnt/c/WEB/keystone-md2/node_modules/mongoose/node_modules/mongodb-core/lib/topologies/replset.js:1245:38
at /mnt/c/WEB/keystone-md2/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:760:7
at /mnt/c/WEB/keystone-md2/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:736:20
at finish (/mnt/c/WEB/keystone-md2/node_modules/mongoose/node_modules/mongodb-core/lib/auth/scram.js:168:16)
at handleEnd (/mnt/c/WEB/keystone-md2/node_modules/mongoose/node_modules/mongodb-core/lib/auth/scram.js:178:7)
at /mnt/c/WEB/keystone-md2/node_modules/mongoose/node_modules/mongodb-core/lib/auth/scram.js:269:11
at /mnt/c/WEB/keystone-md2/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:469:18
at process._tickCallback (internal/process/next_tick.js:61:11)
name: 'MongoError',
message: 'authentication fail',
errors:
[ { name: 'mongo-cluster-shard-00-01-ixqtu.mongodb.net:27017',
err: [Error] },
{ name: 'mongo-cluster-shard-00-00-ixqtu.mongodb.net:27017',
err: [Error] } ] }
Error: KeystoneJS (Keystone Demo) failed to start - Check that you are running `mongod` in a separate process.
at …Run Code Online (Sandbox Code Playgroud) 我想知道如何在 Keystonejs 6 架构文件中创建 NOT NULL 的外键。我使用 postgresQl 和 ORM Prisma。我无法使用 isRequired = true 创建关系字段,这意味着 NOT NULL。有人可以解释如何在 Keystonejs 6 架构文件中的关系字段中添加 NOT NULL 吗?或许这是不可能的?
keystonejs ×10
node.js ×9
mongoose ×4
javascript ×3
mongodb ×2
express ×1
frontend ×1
graphql ×1
less ×1
oauth ×1
passport.js ×1
postgresql ×1
prisma ×1