小编Ben*_*Odr的帖子

具有 Express 会话问题的节点

我使用以下有效的代码,但是在几次成功调用(5-10)之后,我们有时会收到内部服务器错误:

req.session["oidc:accounts.rvm.com"] is undefined

我已经尝试了所有的latest开源版本。

Error: did not find expected authorization request details in session, req.session["oidc:accounts.rvm.com"] is undefined
at /opt/node_app/app/node_modules/openid-client/lib/passport_strategy.js:125:13
at OpenIDConnectStrategy.authenticate (/opt/node_app/app/node_modules/openid-client/lib/passport_strategy.js:173:5)
at attempt (/opt/node_app/app/node_modules/passport/lib/middleware/authenticate.js:366:16)
at authenticate (/opt/node_app/app/node_modules/passport/lib/middleware/authenticate.js:367:7)
at /opt/node_app/app/src/logon.js:92:7 *******
at Layer.handle [as handle_request] (/opt/node_app/app/node_modules/express/lib/router/layer.js:95:5)
at next (/opt/node_app/app/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/opt/node_app/app/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/opt/node_app/app/node_modules/express/lib/router/layer.js:95:5)
at /opt/node_app/app/node_modules/express/lib/router/index.js:281:22
Run Code Online (Sandbox Code Playgroud)

我的堆栈代码是:

at /opt/node_app/app/src/logon.js:92:7
Run Code Online (Sandbox Code Playgroud)

这是代码的结尾:

})(req, res, next);   // here is line 92 but not sure if it's related 
Run Code Online (Sandbox Code Playgroud)

这是完整的代码(我通过app它只是一个快速服务器):

索引.js

const express = require('express'); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js async-await openid-connect passport.js

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

去 gin 获取请求正文 json

我使用邮递员发布数据并在正文中放入一些简单的 json

请求正文

{
    "order":"1",
    "Name":"ts1"
}
Run Code Online (Sandbox Code Playgroud)

我需要将数据传输到 json 并尝试如下操作,但我无法获得 json,不知道缺少什么

router.POST("/user", func(c *gin.Context) {
        var f interface{}
        //value, _ := c.Request.GetBody()
        //fmt.Print(value)

        err2 := c.ShouldBindJSON(&f)
        if err2 == nil {
            err = client.Set("id", f, 0).Err()
            if err != nil {
                panic(err)
            }

        }
Run Code Online (Sandbox Code Playgroud)

f 不是 json 并且我收到错误,知道如何使其工作吗?错误是:

redis: can't marshal map[string]interface {} (implement encoding.BinaryMarshaler)
Run Code Online (Sandbox Code Playgroud)

我使用https://github.com/go-redis/redis#quickstart

如果我删除主体并使用这样的硬编码代码,我就可以设置数据,它可以工作

json, err := json.Marshal(Orders{
    order:   "1",
    Name: "tst",
})

client.Set("id", json, 0).Err()
Run Code Online (Sandbox Code Playgroud)

http-post go

8
推荐指数
4
解决办法
2万
查看次数

为不同的任务创建一个新的 VSCode 扩展

我想用我自己的架构 文档vscode 任务创建一个自定义的 VS Code任务

例如,一个空的新树视图,当用户单击+按钮时(一个新的树视图,带有类似于源代码树的按钮,如添加文件、添加文件夹等,但仅带有+从两个选项创建新任务的按钮)他当他单击特定任务时获得任务列表,它会创建一个tasks.json(如果它不存在)文件,其中包含与他从列表中选择的任务相关的架构,例如tasks1,如果他选择task2tasks.json他需要的不同条目编辑。

这里的技巧,每个任务应该在tasks.json生成给用户的文件中添加不同的条目

例如

如果用户选择task1,他需要填写(在 中的一个新条目task.json

username
password
Run Code Online (Sandbox Code Playgroud)

如果他选择task2

system
endpoint
Run Code Online (Sandbox Code Playgroud)

是否可以在 VS Code 中做到这一点?任何与此有关的示例都会有所帮助。

即使它不适合我完全需要的相同场景(tasks.json文件中的不同任务条目),我也尝试了以下操作,但是它没有task.json. 更多信息:https : //github.com/microsoft/vscode-extension-samples/tree/master/task-provider-sample

javascript node.js typescript visual-studio-code vscode-tasks

6
推荐指数
0
解决办法
524
查看次数

使用多个属性映射数组中的 json 数据

I\xe2\x80\x99ve 以下 json 对象

\n\n

https://codebeautify.org/jsonviewer/cb01bb4d

\n\n
obj = \n{\n  "api": "1.0.0",\n  "info": {\n    "title": "Events",\n    "version": "v1",\n    "description": "Set of events"\n  },\n  "topics": {\n    "cust.created.v1": {                            //Take this value\n      "subscribe": {\n        "summary": "Customer Register Event v2",    //Take this value\n        "payload": {\n          "type": "object",\n          "required": [\n            "storeUid"\n\n          ],\n          "properties": {\n            "customerUid": {\n              "type": "string",\n              "description": "Email of a Customer",\n              "title": "Customer uid"\n            }\n          }\n        }\n      }\n    },\n    "qu.orderplaced.v1": {                     //Take this value\n      "subscribe": {\n        "summary": "Order Placed",             //Take this value\n …
Run Code Online (Sandbox Code Playgroud)

javascript json node.js typescript lodash

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

使用 for 循环为数组提供错误

我使用以下代码按预期工作,但使用 ESLINT 时出现错误

ESLint:迭代器/生成器需要再生器运行时,这对于本指南来说太重量级了,不允许它们使用。另外,应避免循环以支持数组迭代。(无限制语法)

这是代码

for (const subscription of resp.data.subscriptions) {
  if (subscription.url) {
    return subscription.url;
  }
}
Run Code Online (Sandbox Code Playgroud)

代码很简单

  • 从其他函数获取数据数组
  • 对每个数组项进行循环
  • 当第一个数组实例有 url 时,将其获取并返回

有没有更好的方法来避免 eslint 问题?

javascript for-loop node.js

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

从“运营商”集群监控 k8s 应用

我们有几个 K8S 集群,我们需要从一个操作员集群(集群 A)监控我们在每个集群上使用 Prometheus 来监控集群本身,现在另外我们想从应用程序的特定 api 进行监控,它会告诉我们我们的集群(根据我们的具体服务)是否正常,我不是在谈论监控集群,我们希望运营商在每个集群上监控 3 个应用程序(所有 3 个应用程序都部署在所有被监控的集群上)

集群 A(运营商)应监控集群 B、C、D 等上的服务/应用程序

例如,运营商集群将调用集群A中的已部署应用程序,例如 host://app1/status获取0或1的状态,并将状态保存在某个数据库中。(可能是 prometehusDB)并在集群外报告它们。

目前经过一些搜索,我找到了这个选项,但也许还有更多我不知道的

  1. 使用黑盒导出器 - https://github.com/prometheus/blackbox_exporter

  2. 创建我自己的程序(在 golang 中),它会像 cronjob 一样并且将使用 prom lib 在操作员集群中运行。

https://github.com/prometheus/client_golang

我的意思是运行一个休息调用并使用 Prometheus apitsdb通过 go "github.com/prometheus/client_golang/prometheus/promhttp" 代码将状态存储在 Prometheus 中。但不确定如何..

  1. 联邦??

此外,如果我能够将集群中的所有数据收集到操作员集群中,我应该如何以及在哪里保存它?在普罗米修斯数据库 tsdb 中?另一种方式 ?

支持我们的案例的最佳实践应该是什么?我们应该怎么做?

kubernetes prometheus prometheus-operator prometheus-blackbox-exporter

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

在 docker 上使用最新的 curl 版本

我有以下泊坞窗图像

FROM debian:10.7

RUN apt-get update && \
    apt-get install --yes --no-install-recommends curl
Run Code Online (Sandbox Code Playgroud)

当我运行它并使用curl --version我得到版本7.64但最新的是7.74 https://curl.haxx.se/download.html

我应该如何将 curl 升级到最新版本 7.74 ?
有没有办法做到这一点?

linux debian curl docker dockerfile

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

Docker K8s 优化镜像以减少加载时间

我们有很多 docker 镜像需要上传到 k8s,它可以工作,但是当我们启动一个新节点时,这个过程可能需要很多时间。

我们尝试更改图像以使用“多阶段”构建,但是这个过程仍然需要很多时间,而且我们没有看到新节点的启动时间发生重大变化。

现在我们尝试以下操作:(但是我们不确定我们会看到多大的影响......)

  1. 尝试(尽可能多地)使用相同的 docker 图像 from,例如所有使用 alpine 的图像使用完全相同的版本(3.11)而不是一些使用版本3.10和一些3.10.1和一些3.11等等,这将阻止重用机制码头工人到已经兑现的层......

  2. 减少层数,将RUN命令组合为一个而不是多个。(我们需要为许多 docker 文件执行此操作...),不确定 docker 机制将如何帮助实现我们的目标

所有这些改变使用相同版本和减少层的过程可能需要很多时间,我们是在浪费时间还是在那里,或者这是可以减少加载时间的东西?还有其他想法可以帮助我们吗?

我们有很多基于 Golang、NodeJS、java 等的 docker 镜像。

linux amazon-web-services docker kubernetes

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

检查 docker alpine musl 版本

我们有基于 alpine linux 的 docker 文件。我想让构建的容器检查musl库的版本,我的意思是运行容器并在 RT 中检查 musl 版本,我该怎么做?

我尝试过类似的东西

docker run -it --rm alpine /bin/ash
Run Code Online (Sandbox Code Playgroud)

并运行

musl -v
Run Code Online (Sandbox Code Playgroud)

得到

/bin/ash: musl: not found
Run Code Online (Sandbox Code Playgroud)

c docker musl dockerfile alpine-linux

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

使用 golangci 执行 go exec 命令安全 linting 消息

我正在gosec为 golangci-lint添加一个linter,除以下内容外,所有内容都已涵盖:

exec.Command(params[0], params[1:]…)
Run Code Online (Sandbox Code Playgroud)

我知道我可以禁用此 lint,但我不想这样做。有没有办法修复代码以满足此 lint 的要求?

错误是:

 G204: Subprocess launched with function call as argument or cmd arguments ```
Run Code Online (Sandbox Code Playgroud)

go

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

如何从 Goroutines 中捕获错误?

我创建了需要在 goroutine 中运行的函数,代码正在运行(这只是说明问题的简单示例)

go rze(ftFilePath, 2)


func rze(ftDataPath,duration time.Duration) error {

}
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情

errs := make(chan error, 1)
err := go rze(ftFilePath, 2)
if err != nil{
    r <- Result{result, errs}
} 
Run Code Online (Sandbox Code Playgroud)

但不确定如何操作,大多数示例都展示了使用https://tour.golang.org/concurrency/5时如何操作func

go

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