标签: keystonejs

KeystoneJS关系类型,按字段值限制可用项目

是否可以通过指定值条件来限制KeystoneJS的关系类型中的可用显示选项?

基本上,模型有两组数组字段,而不是让管理员用户从字段中选择任何项目,我想仅限于属于特定集合_id的项目.

model-view-controller node.js keystonejs

7
推荐指数
1
解决办法
1581
查看次数

有没有办法隐藏Keystone.js中的ID列?

我在试图隐藏ID列时遇到了麻烦,由Keystone List模板自动生成.有没有办法压制这个列?文档很少涉及框架的基本用法.

node.js express keystonejs

7
推荐指数
1
解决办法
1622
查看次数

在keystone中获取相关项目

在KeystoneJS的一个项目上工作,我很难搞清楚猫鼬关系的位置.

根据keystone docs,假设我们有以下模型:UserPost.现在帖子与用户有关系,所以我会写:

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做到这一点吗?

mongoose node.js keystonejs

6
推荐指数
1
解决办法
5646
查看次数

Keystonejs:自定义 Keystonejs 默认管理 UI 主题

我尝试自定义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)

javascript frontend less node.js keystonejs

6
推荐指数
1
解决办法
1922
查看次数

在Passport KeystoneJS中创建新用户时出现Mongoose ValidationError

我在我的项目中使用KeystoneJSPassport身份验证插件.

如果用户帐户存在并且与所使用的社交网络绑定,则一切都很有效.但是,在创建新用户时,使用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)

oauth mongoose node.js passport.js keystonejs

5
推荐指数
0
解决办法
2332
查看次数

向KeystoneJS添加自定义管理UI功能

我只是从一个新项目的Keystone开始,找不到任何描述向管理UI添加自定义功能的文档。

一些我需要实现但找不到任何资源的东西:

  1. 在管理员中创建不依赖于模型的新页面。在这种情况下,我需要使用自己的视图,前端JS和后端端点,但我不确定该如何包含或如何连接到管理UI。有没有实现这一目标的基石方法?
  2. 自定义列表页面。例如,我有一些自定义模型,我想通过在列表中拖放来重新排序,并在表上方有一个附加的保存按钮,用于将新订单提交给端点。为此,我需要一种在各自的列表页面中注入一些自定义JS和HTML的方法,但是我什至不确定如何做到这一点。
  3. 我不希望管理项目页面中的自定义字段由Keystone从模型中自动生成。有没有办法劫持特定模型类型的Keystone视图并添加自定义元素?
  4. 使用来自同一模型的mongo数据声明一个新模型。例如,具有带有选择元素的“类别”模型以及其他用于选择父级的类别。

抱歉,如果这些问题已经讨论/记录在案,但我找不到与它们相关的任何信息。

感谢并期待您对这些问题的想法。

javascript mongodb node.js keystonejs

5
推荐指数
1
解决办法
4077
查看次数

如何在 Keystone.js 以外的 .js 文件中使用 .env 文件变量?

我们在我们的一个项目中使用 keystone 框架工作,我试图将 .env 文件变量用于我的 .js 文件之一以连接 http 站点。我使用了 dotenv 并调用了 process.env.xxyz,其中 xxyz 是变量我们正在使用。请让我知道是否有任何其他方法可以从 .env 文件中调用变量。

javascript keystonejs

5
推荐指数
1
解决办法
2万
查看次数

Keystone.js模型中的动态类型选择

我想在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)

但是我没有找到绑定数据的方法。任何想法如何做到这一点?

谢谢

mongoose node.js keystonejs

5
推荐指数
1
解决办法
296
查看次数

如何修复:“MongoError:身份验证失败”@MongoDB Atlas

我正在连接到 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)

mongoose mongodb node.js keystonejs

5
推荐指数
2
解决办法
9998
查看次数

如何在 Keystonejs 6 中创建 NOT NULL 的外键?

我想知道如何在 Keystonejs 6 架构文件中创建 NOT NULL 的外键。我使用 postgresQl 和 ORM Prisma。我无法使用 isRequired = true 创建关系字段,这意味着 NOT NULL。有人可以解释如何在 Keystonejs 6 架构文件中的关系字段中添加 NOT NULL 吗?或许这是不可能的?

postgresql node.js graphql keystonejs prisma

5
推荐指数
1
解决办法
324
查看次数