小编U-w*_*ays的帖子

textContent与innerText之间的区别

textContentinnerTextJavaScript有什么区别?

我可以使用textContent如下:

var logo$ = document.getElementsByClassName('logo')[0];
logo$.textContent = "Example";
Run Code Online (Sandbox Code Playgroud)

javascript

119
推荐指数
7
解决办法
4万
查看次数

如何始终禁用/跳过 Github 操作中的作业?(不是步骤/动作)

我有以下工作流程:

name: CICD

# ...

jobs:
  CI:
    uses: ...
  CD:
    needs: [CI]
    uses: ...
Run Code Online (Sandbox Code Playgroud)

我遇到了一个问题,需要我暂时禁用使用其他工作流程(不仅仅是单个步骤或操作)的 CD 作业。

我尝试过的:

最近似乎有关于“跳过工作流程运行”的更新

您可以通过在提交消息中包含命令来跳过由 Push 和 Pull_request 事件触发的工作流运行。

这听起来很不方便,他们在底部提到:

您还可以禁用工作流程的运行。有关详细信息,请参阅“禁用和启用工作流程”。

您可以在其中使用 GitHub UI、REST API 或 GitHub CLI 禁用和重新启用工作流。但是,当工作流程用作可重用工作流程时,这似乎不起作用。

我也可以简单地省略逻辑:

name: CICD

# ...

jobs:
  CI:
    uses: ...
Run Code Online (Sandbox Code Playgroud)

但我想以不同的方式保留版本控制历史记录(+使我的管道明确声明该作业已禁用/跳过)

有解决方法吗?

github github-actions cicd

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

reCAPTCHA - 错误代码:'missing-input-response','missing-input-secret'验证用户的响应时(POST上缺少详细信息)

我在我的Web应用程序中设置了一个不可见的reCAPTCHA,无法验证用户的响应.(即使我传递了正确的POST参数)

我通过调用grecaptcha.execute();客户端以编程方式调用挑战.然后registrationForm.submit();使用recaptcha回调提交表单()()

<div class="g-recaptcha"
  data-sitekey="SITE_KEY"
  data-callback="onSubmit"
  data-size="invisible">
</div>
Run Code Online (Sandbox Code Playgroud)

现在阅读"验证用户响应"文档后,我发现响应令牌作为POST参数传递给g-recaptcha-response:

对于Web用户,您可以通过以下三种方式之一获取用户的响应令牌:

  • 用户在您的站点上提交表单时的g-recaptcha-response POST参数
  • ...

所以我使用Fetch在服务器端使用所需的正文数据在验证端点上创建POST请求:

verify(req, res, next) {
  const VERIFY_URL = "https://www.google.com/recaptcha/api/siteverify";

  return fetch(VERIFY_URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      secret:   process.env.RECAP_INVIS_SECRET_KEY,
      response: req.body['g-recaptcha-response'],
    }),
  })
  .then(response => response.json())
  .then(data => {
    res.locals.recaptcha = data;
    return next();
  });
}
Run Code Online (Sandbox Code Playgroud)

但我一直得到以下回应:

{success:false,error-codes:['missing-input-response','missing-input-secret']}

即使我将响应和秘密作为JSON数据传递给POST正文.

难道我做错了什么?问候.

post recaptcha node.js express

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

使用 ZSH 时 IntelliJ 没有获取环境变量?

我的终端使用 oh-my-zsh。我已将 IntelliJ 设置/bin/zsh为 shell 路径。然而,我的文件中似乎没有环境变量.zshrc被拾取。我正在定义这样的环境变量(例如):

export GOOGLE_APPLICATION_CREDENTIALS="$HOME/mailcreds.json"
Run Code Online (Sandbox Code Playgroud)

但如果我跑:

echo $GOOGLE_APPLICATION_CREDENTIALS
Run Code Online (Sandbox Code Playgroud)

什么也没有出现。

terminal zsh intellij-idea oh-my-zsh

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

Gradle“没有名为 VERSION_CATALOGS 的功能”

我正在尝试将 Gradle 版本从 7.x 升级到 8.x。但是,当我完成 Gradle 包装器升级并运行该项目时,我遇到了以下错误:

设置文件“.../settings.gradle.kts”行:7

没有名为 VERSION_CATALOGS 的功能

这是我的样子settings.gradle.kts

include(
    ":project-a",  
    ":project-b",  
)

dependencyResolutionManagement {
    enableFeaturePreview("VERSION_CATALOGS")  
    versionCatalogs {  
        create("libs") {  
            val kotlinVersion = "1.8.10"  
            val dokkaVersion = "1.8.10"
            
            plugin("jetbrains-kotlin-jvm", "org.jetbrains.kotlin.jvm").version(kotlinVersion)  
            plugin("jetbrains-dokka", "org.jetbrains.dokka").version(dokkaVersion)  
        }  
    }
}
Run Code Online (Sandbox Code Playgroud)

当我检查发行说明时,没有提到这一点,它是否已完全去孵化?

gradle kotlin gradle-kotlin-dsl

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

在 For 循环内的 If 语句内继续

我有一个 for 循环,其中我需要跳过一些行。

以更简单的方式,这就是我所做的:

for (int x = 0; x < 6; x++){
    if (x == 3) {
        continue;
    }
    Log.i("LOGLOG","LOGLOGLOG");
}
Run Code Online (Sandbox Code Playgroud)

continue 语句是否有效,就像跳转到 for 循环的另一个迭代一样?如果没有,最好的方法是什么?或者我该如何优化这个?

提前致谢。

java android

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

如何使用类加载器和注释

我正在尝试从方法中获取注释,但遇到了一些麻烦。我正在做的是使用 URLClassLoader 加载 jar 文件,然后使用反射和 Method.getAnnotation 检查该 jar 中类中方法的注释。
我遇到的问题是 Method.getAnnotation 将始终返回 null,即使注释存在(我们可以使用 Method.getAnnotations 看到)。我已经在未使用 URLClassLoader 加载的类上的相同注释类型上测试了相同的过程,并且工作正常。
更深入的调查表明,instance.annotationType() 和 MyAnnotation.class 的规范名称是相同的。但是,instance.annotationType().equals(MyAnnotation.class) 返回 false。然而,实例本身是一个代理 (com.sun.proxy)。

有没有一种方法可以在不进行大量反射的情况下获取注释和注释的字段?

instance.annotationType().getMethod("value").invoke(instance)
Run Code Online (Sandbox Code Playgroud)

上面的方法可以获取该字段,并且通过对规范名称进行字符串比较来迭代 Method.getAnnotations 的结果将为我提供注释,但肯定有更好的方法吗?

也为了教育价值,是什么原因造成的?我的猜测是,这是因为系统类加载器加载的注释的类与 URL 类加载器加载的注释的类在某种程度上不同。

java reflection annotations classloader kotlin

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

如何允许用户使用 node.js 通过用户名或电子邮件登录

我有一个带护照的 node.js 登录系统,但我想弄清楚如何使用用户名或电子邮件登录用户。我只能使用电子邮件或用户名单独登录用户。我不知道如何编写代码来满足他们的用户名和电子邮件。因此,如果用户想使用用户名登录,他们可以,或者如果希望使用他们的电子邮件,他们也可以。这是我的 users.js 文件中的 localstrategy 代码:

passport.use(new LocalStrategy(
    function(email, password, done) {
        User.getUserByEmail(email, function(err, user, next){
            if(err) throw err;
            if(!user){
                return done(null, false, {message: 'Unknown user'});
            }

        User.comparePassword(password, user.password, function(err, isMatch){
            if(err) throw err;
            if(isMatch){
                return done(null, user);
            } else {
                return done(null, false, {message: 'Invalid password'});
            }
        });
        });
    }));
Run Code Online (Sandbox Code Playgroud)

这是我的 user.js 中的 module.exports:

module.exports.getUserByEmail = function(email, callback){
    var query = {email: email};
    User.findOne(query, callback);
}

module.exports.getUserById = function(id, callback){
    User.findById(id, callback);
}

module.exports.comparePassword = function(candidatePassword, hash, callback){ …
Run Code Online (Sandbox Code Playgroud)

javascript authentication node.js passport.js

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

GraphQL.js - 时间戳标量类型?

我正在以编程方式构建 GraphQL 架构,并且需要Timestamp标量类型;Unix 纪元时间戳标量类型:

const TimelineType = new GraphQLObjectType({
  name: 'TimelineType',
  fields: () => ({
    date:  { type: new GraphQLNonNull(GraphQLTimestamp)  },
    price: { type: new GraphQLNonNull(GraphQLFloat)      },
    sold:  { type: new GraphQLNonNull(GraphQLInt)        }
  })
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,GraphQL.js没有aGraphQLTimestamp也没有 aGraphQLDate类型,所以上面的方法不起作用。

我期待一个Date输入,我想将其转换为时间戳。我将如何创建自己的 GraphQL 时间戳类型?

javascript scalar schema graphql graphql-js

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

如何获取完整的SendGrid API密钥?

我可以从Web应用程序获取API密钥.但是,根据SendGrid文档,我只能访问整个密钥的一小部分.

如果您看到以下API密钥示例:

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
Run Code Online (Sandbox Code Playgroud)

子字符串"ngeVfQFYQlKU0ufo8x5d1A"是API密钥.

这些内容的其余部分是什么?它们是如何生成整个/完整字符串的?

参考:SendGrid文档 - API密钥


*解决*

API KEY仅生成并显示给您一次.所以一定要复制并保存在某个地方.之后,仅显示子集键.

sendgrid sendgrid-api-v3

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