小编Lon*_*ike的帖子

AJV 验证:dataPath 不一致

我有一个像这样的 AJV 架构:

// schema.js
module.exports = {
  title: 'task',
  description: 'A Task Schema',
  type: 'object',
  properties: {
    object_city: {
      title: 'City',
      type:'string'
    },
    object_zip: {
      title: 'Zip Code',
      type: 'string',
      maxLength: 5,
      minLength: 5
    }
  },
  required: ['object_zip', 'object_city'],
  additionalProperties: false
};
Run Code Online (Sandbox Code Playgroud)

当我针对此架构运行验证测试时,缺少 object_city 的结果是:

{ keyword: 'required',
  dataPath: '',
  schemaPath: '#/required',
  params: { missingProperty: 'object_city' },
  message: 'should have required property \'object_city\'' }
Run Code Online (Sandbox Code Playgroud)

但邮政编码短于 minLength 的结果是:

{ keyword: 'minLength',
  dataPath: '.object_zip',
  schemaPath: '#/properties/object_zip/minLength',
  params: { limit: 5 }, …
Run Code Online (Sandbox Code Playgroud)

javascript jsonschema node.js json-schema-validator ajv

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

如何在 Rust 中使用 reqwest 反序列化任意 json 结构?

我对 Rust 完全陌生,我试图找出如何从 URL 端点反序列化任意 JSON 结构。

reqwest README 上的相应示例如下所示:

use std::collections::HashMap;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::get("https://httpbin.org/ip")
        .await?
        .json::<HashMap<String, String>>()
        .await?;
        println!("{:#?}", resp);
    Ok(())
}
Run Code Online (Sandbox Code Playgroud)

所以在这个例子中,目标结构——即一个以字符串作为键和字符串作为值的 HashMap 对象——显然是已知的。

但是,如果我不知道在请求端点上接收到的结构是什么样的呢?

json rust reqwest

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

Svelte 存储订阅函数不应在订阅时调用

我不明白这一点。我正在尝试订阅一家 svelte 商店。但是传递给subscribe 的闭包函数会立即被调用。尽管商店的价值没有改变。

这是一个简洁的 REPL示例

使用以下代码:

<script>
    import { onDestroy } from 'svelte';
    import { writable } from 'svelte/store';
    
    const store = writable({ givenName: '', familyName: '' });
    
    const unsubscribe = store.subscribe( state => {
    console.log('This function shouldn\'t have been invoked on subscription.');
    });
    onDestroy(unsubscribe);
</script>

<h1>
    Please check the console output ...
</h1>
Run Code Online (Sandbox Code Playgroud)

恕我直言,关闭函数应该在更改时触发,而不是在订阅时触发,或者我缺少什么?

svelte svelte-store

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

Schema.org NewsArticle:徽标属性的值无效

我尝试在我的代码中标记一个小部分,NewsArticle但我无法让它验证.

如果我这样做

<div itemscope itemprop="publisher" itemtype="https://schema.org/Organization">
  <span itemprop="name">My Company</span>
</div>
Run Code Online (Sandbox Code Playgroud)

验证者抱怨说没有logo.

如果我添加logo这样的

<div itemscope itemprop="publisher" itemtype="https://schema.org/Organization">
  <img itemprop="logo" src="https://www.mysite.de/resources/assets/71/small/my_logo_web.png" />
  <span itemprop="name">My Company</span>
</div>
Run Code Online (Sandbox Code Playgroud)

验证器抱怨该属性包含无效值.我在这做错了什么?

html5 structured-data microdata schema.org

4
推荐指数
1
解决办法
3443
查看次数

具有默认实现和所需结构成员的特性

我有一个 rust 特征,它应该为向量添加一个值。为了使add_job函数正常工作,必须确保在为具体结构实现特征时向量存在。

以下代码当然失败了,因为从未实现过作业。它只是为了证明我的意图:

trait Person {
    // default implementation of add job
    fn add_job(&self, job: String) {
        self.jobs.push(job)
    }
}

struct Customer {
    // add_job is used as default implementation 
    // provided by trait
}

impl Person for Customer {
    // some stuff
}

fn main() {
    let mut george = Customer {};
    george.add_job("programmer".to_string());
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让特征也提供结构成员?

可能不是,但是解决上述问题的“生锈”方法是什么?

traits rust

4
推荐指数
1
解决办法
559
查看次数

当焦点位于树状视图上时,重新聚焦于Atom编辑器的快捷方式是什么?相反吗?

当树具有焦点时,atom.io中是否有快捷方式来使焦点重新回到编辑器上(甚至是在特定窗格上)?

我检查了文档,但找不到任何东西。

ide keyboard-shortcuts atom-editor

3
推荐指数
1
解决办法
735
查看次数

vue.js触发了$ on未收到$ emit

Vue.component('rating-edit', {
    template:`
    <form>
      <input v-model="rating.title" type="text">
      <textarea v-model="rating.remark">{{rating.remark}}</textarea>
      <button type="button"
        @click="submit">
        Save
      </button>
    </form>`,
    props:['rating'],
    methods: {
      submit: function submit () {
        let rating = this.rating;
        this.$emit('submit', rating);
        console.log('submit was emitted');
      }
    }
  });

const aRating = {
    title: 'title',
    remark: 'remark'
  };

let vueApp = new Vue({
    el: '#rating-edit-container',
    data: {
      rating: aRating
    }
  });

vueApp.$on('submit', function(rating) {
  console.log('vue on submit', rating);
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://vuejs.org/js/vue.min.js"></script>
<div id="rating-edit-container">
  <rating-edit :rating="rating"></rating-edit>
</div>
Run Code Online (Sandbox Code Playgroud)

在旧版前端代码中,我想实现基于vue的组件化表单,并使其在提交时返回数据。

这是组件代码。请注意提交功能触发this.$emit('submit', rating);

let result = { …
Run Code Online (Sandbox Code Playgroud)

javascript events vue.js

3
推荐指数
1
解决办法
4689
查看次数

是否可以在没有 cookie 的情况下设置 nginx?

我看到,尤其是在德国,越来越多的网站要求设置 cookie 的权限。我当前的项目不需要应用程序级别的 cookie。所以我想知道我是否不应该完全放弃饼干。

我的问题:

是否可以在不使用 cookie 的情况下完全使用 nginx 设置静态网站?

如果是这样,无 cookie 的网站有什么缺点吗?

webserver nginx cookieless

3
推荐指数
1
解决办法
4260
查看次数

macos iterm2 tmux 重新映射 ctrl-b 到右侧选项/alt-a

我认为这是理所当然的。我在 MacBook 上的 maxOs 上使用 tmux 和 iterm2(最新版本)。

对于 MacBook 来说,使用 ctrl-b 作为前缀是一个糟糕的组合键,因为 MacBook 只有一个控制键,并且位于左侧。所以同时按下这两个按钮对我来说几乎是痛苦的。但 tmux 很棒,所以它可以让您重新映射前缀。

因此,我很天真地在~/.tmux.conf中输入了这一行,以便将前缀设置为 option/alt-a:

set-option -g prefix M-a
Run Code Online (Sandbox Code Playgroud)

然而,这条线并没有改变什么。

输入tmux show-options -g仍然输出

prefix C-b
Run Code Online (Sandbox Code Playgroud)

有人解决过这个问题吗?

顺便说一句:我知道我可以使用 iterm2 的 tmux 集成。但我不想要这样。我想要一个纯文本模式解决方案。

macos tmux iterm2

3
推荐指数
1
解决办法
3387
查看次数

如何避免 Rust 中单结构模块的冗余模块命名?

也许这只是困扰我,但在某些情况下,我希望每个模块文件有一个结构。

假设我有一个名为User的结构,如下所示:

struct User {
    name: String
}
Run Code Online (Sandbox Code Playgroud)

假设我有一个文件结构,例如 User 结构代码在src/models/user.rs 中的位置,如下所示:

src/
    models/
           user.rs
Run Code Online (Sandbox Code Playgroud)

现在我希望能够像这样使用 User 结构:

use crate::models::User;
Run Code Online (Sandbox Code Playgroud)

当然这是不可能的。相反,它需要引用:

use crate::models::user::User;
Run Code Online (Sandbox Code Playgroud)

对我来说,这看起来很丑陋,如果user 和 User这两个词都是模块路径的一部分,我认为它是多余的。

是否有任何解决方案似乎不像刚才描述的那样“笨拙”?

也可能是我错过了关于 rust 模块命名系统如何工作的一些东西。

module rust

3
推荐指数
1
解决办法
85
查看次数

在 dexie.js 中,如何从表中获取所有记录?

在 dexie.js 中,有没有办法从表中获取所有记录?

目前我正在使用:

dbTable.filter(() => true).then( ... )
Run Code Online (Sandbox Code Playgroud)

它有效,但我不确定它是否正确。

javascript dexie

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

Javascript Object.create:设置数据时内存会发生什么?

假设在Javascript中创建了一个新的Object,它使用一种方法将数据设置为创建的实例.

我想知道,当添加数据时,数据会在内存中存在两次还是newObj.data和数据只是指向内存中的相同地址?

let data = {text: 'a text'};

let newObj = Object.create({
  setData(argData) {
    this.data = argData;
  }
});

// is data and newObj.data twice in memory now?
Run Code Online (Sandbox Code Playgroud)

如果可能已经提出类似的问题,我会提前道歉(这就是编写本文时的编辑提示).我是这样,我还没找到他们.可能是他们的表述不同,但我不知道如何以任何其他方式提出这个问题.

javascript javascript-objects

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