我已经开始在一个基于 Node.js 的现有项目上工作。我只是想了解执行流程,在那里我遇到了一些*.mjs文件。我搜索了网络,发现这些是基于模块的 JS 文件。
我想知道它与*.js文件有什么不同(它有什么好处)?
我正在尝试使用 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
我创建了一个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)
提前致谢 !
大多数情况下,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()函数可以帮助我,但我不知道如何!
我有一个具有给定文件夹结构的 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) 我正在构建一个 Rust 应用程序,当应用程序运行时,我想设置一个操作系统级别标志(ENV 变量)说..MY_CUSTOM_APP_RUNNING=true并在应用程序停止时将其设置为 false!
另外,我的应用程序有 3 个不同的功能,我希望我的应用程序能够监听标志的更改。例如,如果我运行export MY_CUSTOM_APP_FEATURE_1=enable,我的应用程序应该侦听此更改。
这2件事可能吗?我应该如何做到这一点?
如果我能为所有操作系统都做到这一点,那就太好了!
我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)
但它有两个问题:
Copy特征(使用一些第三方板条箱,因此不能在那里做太多事情)。我应该如何处理这个问题?