小编ken*_*tor的帖子

将JSON作为pug中的javascript变量传递

我想将一个对象数组传递到我的javascript代码块中,但我很挣扎,因为它会对结果进行html编码,以便我"在实际的JSON中有很多.

基本上我的路由器从redis商店获取JSON对象,我试图将其传递给模板:

redis.getBuffer('languages', function (err, result) {
    res.render('manager/create-project', { title: 'Create Project', breadcrumbs: req.breadcrumbs(), languages: result })
})
Run Code Online (Sandbox Code Playgroud)

我将它分配给我的变量:

script.
    $(document).ready(function() {
        var languages = #{languages};
Run Code Online (Sandbox Code Playgroud)

问题: 实际的javascript变量语言获取html编码的字符串,如下所示.

var languages = [{"id":"aa","text":"Afar"}]
Run Code Online (Sandbox Code Playgroud)

如何将JSON内容正确传递到javascript块?

javascript json node.js express pug

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

使用XMLTextReader读取节点值

我试图获取节点的值,但它总是返回一个空字符串.据我所知,我必须首先访问节点才能读取它,但我还没有找到一个示例/语法来完成它.我的XMLNode名称是"BuyNowPrice",并且在我的XML文件中多次出现.

using (XmlReader xmlReader = XmlTextReader.Create(@"C:\benatia.xml"))
{
    while (xmlReader.Read())
    {
        if (xmlReader.IsStartElement())
        {
            if (xmlReader.Name == "BuyNowPrice") Console.WriteLine(xmlReader.Name + ": " + xmlReader.Value);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# xml xmlreader

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

打字稿模块解析不起作用

除了导入相对模块外,我想这样导入我的模块:import { IntHelper } from 'utils/IntHelper';。即使intellisense在VSCode中可以正常工作,但已编译的javascript文件也会引发异常:Cannot find module

我的项目结构:

  • dist
  • src
    • MyProject.ts
    • 实用程序
      • IntHelper.ts
  • tsconfig.json

文件:MyProject.ts

import { IntHelper } from 'utils/IntHelper';
Run Code Online (Sandbox Code Playgroud)

文件:IntHelper.ts

export module IntHelper {
  export const xy: string = 'Test';
  export function crossSum(int: number) {
    return int; // Nonsense - ofcourse.
  }
}
Run Code Online (Sandbox Code Playgroud)

Tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "noImplicitAny": true,
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "dist",
    "baseUrl": ".",
    "paths": {
        "*": [
            "*",
            "src/*"
        ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题: …

typescript tsconfig

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

扩展库的结构/接口

使用案例

我正在使用 Shopify 的 sarama libary,它是一个客户端库。更具体地说,我正在使用ClusterAdmin很棒的结构,但是我想向ListDetailedTopics其中添加另一个方法,并且我必须调用 ClusterAdmin 的非公共方法。

https://github.com/Shopify/sarama/blob/master/admin.go

问题

我不确定如何通过自己的方法“扩展”导出的结构。我试过这个:

func (ca *sarama.ClusterAdmin) ListDetailedtopics() {
  b, err := ca.findAnyBroker() // This is a private method I need to call
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为“接收器类型 *sarama.ClusterAdmin 无效(sarama.ClusterAdmin 是接口类型)”。如何通过自己的方法扩展结构/接口?

go

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

执行到有状态集中的 CrashLoopBackoff 容器

用例

我正在运行一个有 3 个 Pod 的有状态集(数据库)。其中一个 Pod 不断崩溃(CrashLoopBackoff 状态),因为附加的持久卷中存在一些损坏的文件,我需要删除这些文件。但是,我无法执行此 pod,因为它在检测到这些损坏的文件后不断崩溃。

我知道我可以使用类似此命令的命令来防止重新启动['sh', '-c', 'echo The app is running! && sleep 36000'],但是我无法编辑我的有状态集,因为这会导致滚动更新。

问题

如何在有状态集中执行不断崩溃的 pod,而不影响其他正在运行的 pod?

kubernetes

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

Kafka Broker 为生成快速压缩消息的客户端抛出错误

我刚刚使用 Confluence Platform 6.0.0(Apache Kafka 版本 2.6.0)完成了 Kafka 集群设置。Kafka 代理部署在 Kubernetes 中。只要不压缩,向新主题生成消息就可以正常工作。

然而,我只是尝试生成一个快速的压缩消息并返回一个错误。因此,我查看了代理日志并在代理中看到了以下异常:

[2020-11-24 13:14:37,834] ERROR (data-plane-kafka-request-handler-0:Logging) [ReplicaManager broker=1] Error processing append operation on partition customers-2
org.apache.kafka.common.KafkaException: java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy
        at org.apache.kafka.common.record.CompressionType$3.wrapForInput(CompressionType.java:92)
        at org.apache.kafka.common.record.DefaultRecordBatch.compressedIterator(DefaultRecordBatch.java:261)
        at org.apache.kafka.common.record.DefaultRecordBatch.skipKeyValueIterator(DefaultRecordBatch.java:340)
        at kafka.log.LogValidator$.$anonfun$validateMessagesAndAssignOffsetsCompressed$1(LogValidator.scala:401)
        at kafka.log.LogValidator$.$anonfun$validateMessagesAndAssignOffsetsCompressed$1$adapted(LogValidator.scala:394)
        at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:553)
        at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:551)
        at scala.collection.AbstractIterable.foreach(Iterable.scala:920)
        at kafka.log.LogValidator$.validateMessagesAndAssignOffsetsCompressed(LogValidator.scala:394)
        at kafka.log.LogValidator$.validateMessagesAndAssignOffsets(LogValidator.scala:106)
        at kafka.log.Log.$anonfun$append$2(Log.scala:1095)
        at kafka.log.Log.append(Log.scala:2340)
        at kafka.log.Log.appendAsLeader(Log.scala:1019)
        at kafka.cluster.Partition.$anonfun$appendRecordsToLeader$1(Partition.scala:984)
        at kafka.cluster.Partition.appendRecordsToLeader(Partition.scala:972)
        at kafka.server.ReplicaManager.$anonfun$appendToLocalLog$4(ReplicaManager.scala:883)
        at scala.collection.StrictOptimizedMapOps.map(StrictOptimizedMapOps.scala:28)
        at scala.collection.StrictOptimizedMapOps.map$(StrictOptimizedMapOps.scala:27)
        at scala.collection.mutable.HashMap.map(HashMap.scala:34)
        at kafka.server.ReplicaManager.appendToLocalLog(ReplicaManager.scala:871)
        at kafka.server.ReplicaManager.appendRecords(ReplicaManager.scala:571)
        at kafka.server.KafkaApis.handleProduceRequest(KafkaApis.scala:605)
        at kafka.server.KafkaApis.handle(KafkaApis.scala:132)
        at …
Run Code Online (Sandbox Code Playgroud)

apache-kafka

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

Promise.All承诺参数

我有两个promises,每个都返回一个字符串数组.我运行它们Promise.all(p1, p2)但我很惊讶它解析的值参数是一个12k字符串的数组(这将是两个promises'返回之一).

const p1 = ModelA.find()
  .then((bandProfiles) => {
    const bandProfilePlayerTags = []
    // [...] Filling this array with strings
    return bandProfilePlayerTags
  })

const p2 = ModelB.find()
  .then((response) => {
    const playerTags = []
    // [...] Filling this array with strings
    return playerTags
  })

Promise.all(p1, p2).then((values) => {
  // Values is an array containing more than 12k strings
})
Run Code Online (Sandbox Code Playgroud)

我期望值是一个长度为2的数组.values[0]将是来自promise 1 values[1]的返回数组,并且是来自promise 2的返回数组.我在这里缺少什么?

javascript node.js promise bluebird

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

字符串类型声明与字符串不具有可比性

我有一个别名类型“LogLevel”,它是一个字符串:

type LogLevel string

const (
    InfoLevel  LogLevel = "info"
    DebugLevel LogLevel = "debug"
    WarnLevel  LogLevel = "warn"
    ErrorLevel LogLevel = "error"
    PanicLevel LogLevel = "panic"
    FatalLevel LogLevel = "fatal"
)
Run Code Online (Sandbox Code Playgroud)

现在我想做一个 switch case 来根据用户输入检查这些常量:

    switch strings.ToLower(input) {
    case "", InfoLevel:
        return zap.NewAtomicLevelAt(zap.InfoLevel)
    default:
        fmt.Errorf("Invalid log level supplied '%s'. Defaulting to info loglevel", input)
        return zap.NewAtomicLevelAt(zap.InfoLevel)
    }
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为显然类型不兼容?

string.ToLower(input) 中开关中 InfoLevel 的无效情况(LogLevel 和字符串类型不匹配)

如何在案例中使用定义的常量?

go

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