小编anu*_*ysh的帖子

Google Cloud 存储不是一项功能

我正在尝试通过以下方式连接到 Google Cloud Bucket

 const storage = require('@google-cloud/storage');
 const gcs = storage({    //TypeError: storage is not a function
  "keyFileName": 'path-to-keyfile.json',
  "type": "service_account",
  "project_id": <PROJECT_NAME>,

 //SOME CREDENTIALS
});

const bucket = gcs.bucket(<BUCKET_NAME>)
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误,即存储不是一个功能。有什么我遗漏的问题吗?

node.js google-cloud-storage google-cloud-platform

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

在身份验证中间件之后调用自定义中间件

在django REST框架中,身份验证中间件仅在执行视图中间件之后才在请求中设置用户对象,而在此之前执行任何自定义中间件。是否有某种方法可以更改此顺序并在通过身份验证中间件设置用户对象之后执行自定义中间件

作为替代方案,我在中间件本身中创建了用户对象,它可以正常工作,但这只是一个hack。

common.py中定义的中间件是:

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'application.middlewares.IPsBlockerMiddlewareHook',
    'application.middlewares.UserMiddleware',
]
Run Code Online (Sandbox Code Playgroud)

有问题的自定义中间件是UserMiddleware。我需要在身份验证后执行它,但事实并非如此

django django-middleware django-rest-framework

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

使用tunnel-ssh通过ssh通过nodeJS中的mongoose通过SSH连接到远程服务器mongoDB

我试图通过SSH连接到远程服务器mongoDB并进行了所提供的配置

import tunnel from 'tunnel-ssh';

const config = {
    username: 'username',
    Password: 'password',
    host: process.env.SSH_SERVER, //192.168.9.104
    port: 22,
    dstHost: 'localhost',
    dstPort: process.env.DESTINATION_PORT, //27017
    localHost: '127.0.0.1',
    localPort: 27018
};
Run Code Online (Sandbox Code Playgroud)

这是已定义的配置,在这里我需要连接到远程服务器192.168.9.104。因此,将特定的主机选择为SSH主机。提供了相同的用户名和密码。并且建立的连接如下。

class DB {
    initDB() {
        tunnel(config, (error, server) => {
            if (error) {
                console.log('SSH connection error: ' + error);
            }

            const url = 'mongodb://127.0.0.1:27018/myDBname';
            mongoose.connect(url, { useNewUrlParser: true });
            mongoose.plugin(toJson);
            mongoose.plugin(setProperties);

            var db = mongoose.connection;
            db.on('error', console.error.bind(console, 'DB connection error:'));
            db.once('open', function() {
                console.log('DB connection successful');
            });
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当调用db.init()函数时,将弹出以下错误消息 …

ssh mongoose mongodb node.js ssh-tunnel

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

drf_yasg 不将 TYPE_ARRAY 作为有效类型

drf_yasg swagger 生成器不将 TYPE_ARRAY 作为有效参数类型。实现如下

from drf_yasg import openapi
param1 = openapi.Parameter('param_name',
                            in_=openapi.IN_QUERY,
                            description='description of param',
                            type=openapi.TYPE_ARRAY,
                            required=True
                            )
Run Code Online (Sandbox Code Playgroud)

而drf_yasg的文档表明它将 openapi.TYPE_ARRAY 作为有效类型。

生成器抛出的错误是

File "/usr/local/lib/python3.6/dist-packages/drf_yasg/codecs.py", line 73, in encode
    raise SwaggerValidationError("spec validation failed", errors, spec, self)
drf_yasg.errors.SwaggerValidationError: spec validation failed
Run Code Online (Sandbox Code Playgroud)

是否有一些我遗漏的配置或其他原因,因为 TYPE_STRING,TYPE_NUMBER 工作得很好。

swagger django-rest-framework drf-yasg

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

在非结构化对象数组中查找不同键的数量

我需要找到非结构化数据集中对象数组中存在的不同键的数量,例如

[{"a":10, b:"20"}, {"a":90, "b":30}, {"b":40, "c":79}, {"b":58, "d":50}]
Run Code Online (Sandbox Code Playgroud)

用例是找到不同的键即 [a, b, c, d]

特定的用例可以使用循环来解决,但有更聪明的方法吗?

javascript arrays javascript-objects

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

Elasticsearch范围汇总是否包括在内

Elasticsearch范围聚集将数据汇总到给定范围内,即

*GET /_search*
{
    "aggs" : {
        "price_ranges" : {
            "range" : {
                "field" : "price",
                "ranges" : [
                    { "to" : 100.0 },
                    { "from" : 100.0, "to" : 200.0 },
                    { "from" : 200.0 }
                ]
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但没有提及是否包含值,即存储桶中包含值包含100和200或仅包含$ gt 100和$ lt 200的文档。

以下讨论陈述了类似的疑问,但也没有定论 https://github.com/elastic/elasticsearch/issues/17079

TL:DR 范围聚合是否支持$ lte&$ gte或$ gt&$ lt,并且有一种方法可以根据用例进行聚合吗?

elasticsearch

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

使用自定义顺序对字符串数组进行排序

对数组进行排序时,请说:

const arr = ["bad", "good", "all", "ugly"]
Run Code Online (Sandbox Code Playgroud)

使用arr.sort()时,响应趋向于:

arr = ["all", "bad", "good", "ugly"]
Run Code Online (Sandbox Code Playgroud)

但是如果我需要自定义订购,例如:

arr = ["bad", "good", "ugly", "all"]
Run Code Online (Sandbox Code Playgroud)

即,为了示例,您需要将“ all”元素推到排序数组的末尾而不是开始

我所做的是对数组进行排序,然后从数组中删除“所有”元素,仅在最后添加它,即

const a = _.pull(arr, "all");
a.splice(3, 0, "all")
console.log(a)     // ["bad", "good", "ugly", "all"]
Run Code Online (Sandbox Code Playgroud)

是否有更好或更简单的方法?

javascript arrays sorting

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