小编Kev*_*ata的帖子

.js 和 .mjs 文件有什么区别?

我已经开始在一个基于 Node.js 的现有项目上工作。我只是想了解执行流程,在那里我遇到了一些*.mjs文件。我搜索了网络,发现这些是基于模块的 JS 文件。

我想知道它与*.js文件有什么不同(它有什么好处)?

javascript node.js mjs

103
推荐指数
3
解决办法
6万
查看次数

正在获取 gitlab 存储库列表:显示“401 Unauthorized”

我正在尝试使用 OAuth 令牌从 gitlab 获取存储库列表。

我的代码看起来像这样......(“github.com/xanzy/go-gitlab”)

    repositories := []string{}
    client, _ := gitlab.NewClient(gitRepoRequest.Token, gitlab.WithBaseURL("https://gitlab.com/api/v4"))
    fmt.Println("client...", client.ContainerRegistry)

    projects, _, projectListErr := client.Projects.ListProjects(&gitlab.ListProjectsOptions{})
    for _, project := range projects {
        fmt.Println("ID===", project.ID)
        fmt.Println("NAME===", project.Name)
    }

    if projectListErr != nil {
        // return err
    }
Run Code Online (Sandbox Code Playgroud)

我无法获取项目列表..“projectListErr”说... GET https://gitlab.com/api/v4/projects: 401 {message: 401 Unauthorized}

我对令牌值充满信心,因为我正在使用相同令牌获取存储库的所有分支列表,该代码看起来像......(“github.com/go-git/go-git/v5”)

rem := git.NewRemote(gitMemory.NewStorage(), &gitConfig.RemoteConfig{
    Name: "origin",
    URLs: []string{gitBranchesRequest.Repository},
})

refs, listErr := rem.List(&git.ListOptions{
    Auth: &gitHttp.BasicAuth{Username: gitUserName, Password: gitBranchesRequest.Token},
})
Run Code Online (Sandbox Code Playgroud)

这是否意味着我正在使用的库存在问题?github.com/xanzy/go-gitlab

oauth go gitlab

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

GIthub 操作:仅当特定目录发生更改时才触发作业

我创建了一个deployment.yaml,每次我推送到 master 分支时它都会构建我的代码。

这是我的项目结构。

project1
|-subproject1
|-subproject2
|-subproject3
Run Code Online (Sandbox Code Playgroud)

现在,我有 3 个不同的工作来构建每个子项目。

我可以以这种方式添加一个条件吗?如果我只在 subproject2 中进行更改,那么只有该特定作业应该运行。

我发现工作有一个if属性。

https://docs.github.com/en/actions/using-jobs/using-conditions-to-control-job-execution

所以,简而言之,我想写一些类似的东西......

jobs:
  deploy:
    if: old_subproject1 != new_subproject1

...
jobs:
  deploy:
    if: old_subproject2 != new_subproject2
...
jobs:
  deploy:
    if: old_subproject3 != new_subproject3
Run Code Online (Sandbox Code Playgroud)

提前致谢 !

github-actions

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

读取go.mod并检测项目版本

大多数情况下,go.mod文件看起来像这样:

module <module_name>

go 1.16

require (...)
Run Code Online (Sandbox Code Playgroud)

现在,我想提取1.16另一个 golang 项目中的版本值,我读取文件并将其存储在缓冲区中。

buf, err := ioutil.ReadFile(goMODfile)
if err != nil {
    return false, err.Error()
}
Run Code Online (Sandbox Code Playgroud)

我想FindString()MatchString()函数可以帮助我,但我不知道如何!

regex go

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

无法连接到我的容器化 gRPC 服务器

我有一个具有给定文件夹结构的 git 存储库

grpc-repo
|---grpc-client (:8083)
|---grpc-server (:9000)
|---docker-compose.yml
|---Dockerfile
|---Dockerfile2
Run Code Online (Sandbox Code Playgroud)

现在,这些gRPC客户端-服务器项目正常无缝运行。但是,我需要将这个项目进行 dockerize。

下面给出的是我的docker-compose.yml

version: "3.3"

services:
  client:
    container_name: grpc-client
    build:
      dockerfile: Dockerfile
      context: .
    volumes:
      - .:/app
    ports:
      - 8083:8083
    networks:
      - my-network
  server:
    container_name: grpc-server
    build:
      dockerfile: Dockerfile2
      context: .
    volumes:
      - .:/app
    ports:
      - 9000:9000
    networks:
      - my-network

networks:
  my-network:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

对项目进行 docker 化后,我可以轻松连接到 gRPC 客户端。但是客户端无法连接到 gRPC 服务器。

它说 ...

rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing …
Run Code Online (Sandbox Code Playgroud)

go grpc docker-compose docker-network

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

我可以使用 Rust 应用程序在 Linux 上设置和获取标志吗?

我正在构建一个 Rust 应用程序,当应用程序运行时,我想设置一个操作系统级别标志(ENV 变量)说..MY_CUSTOM_APP_RUNNING=true并在应用程序停止时将其设置为 false!

另外,我的应用程序有 3 个不同的功能,我希望我的应用程序能够监听标志的更改。例如,如果我运行export MY_CUSTOM_APP_FEATURE_1=enable,我的应用程序应该侦听此更改。

这2件事可能吗?我应该如何做到这一点?

如果我能为所有操作系统都做到这一点,那就太好了!

linux environment-variables rust

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

在无限循环中独立运行3个异步任务

func1, func2, func3在结构对象上有 3 种不同的异步方法。

我想要完成的是这样的:

loop {
    obj.func1().await;
    set_timeout(Duration::from_secs(5)).await;
}

loop {
    obj.func2().await;
    set_timeout(Duration::from_secs(5)).await;
}

loop {
    obj.func3().await;
    set_timeout(Duration::from_secs(5)).await;
}
Run Code Online (Sandbox Code Playgroud)

我希望所有这 3 个循环并行运行。显然,在这种形式下它不起作用,因为第二个和第三个循环将无法到达。

我想到了以下解决方案:

loop {
    thread::spawn(move || async move {
        obj.func1().await;
        obj.func2().await;
        obj.func3().await;
        set_timeout(Duration::from_secs(5)).await;
    });
}
Run Code Online (Sandbox Code Playgroud)

但它有两个问题:

  1. 我的结构没有实现该Copy特征(使用一些第三方板条箱,因此不能在那里做太多事情)。
  2. 由于每个函数调用都将作为单独的线程运行,因此我怀疑超时在这里能否正常工作!

我应该如何处理这个问题?

multithreading infinite-loop rust

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