小编mit*_*man的帖子

Swift提取正则表达式匹配

我想从匹配正则表达式模式的字符串中提取子字符串.

所以我正在寻找这样的东西:

func matchesForRegexInText(regex: String!, text: String!) -> [String] {
   ???
}
Run Code Online (Sandbox Code Playgroud)

所以这就是我所拥有的:

func matchesForRegexInText(regex: String!, text: String!) -> [String] {

    var regex = NSRegularExpression(pattern: regex, 
        options: nil, error: nil)

    var results = regex.matchesInString(text, 
        options: nil, range: NSMakeRange(0, countElements(text))) 
            as Array<NSTextCheckingResult>

    /// ???

    return ...
}
Run Code Online (Sandbox Code Playgroud)

问题是,这matchesInString提供了我的一个数组NSTextCheckingResult,其中NSTextCheckingResult.range的类型的NSRange.

NSRange是不相容的Range<String.Index>,所以它阻止我使用text.substringWithRange(...)

有没有想过如何在没有太多代码的情况下在swift中实现这个简单的事情?

regex string ios swift

157
推荐指数
8
解决办法
11万
查看次数

Nginx确实重定向,而不是代理

我想将Nginx设置为https服务的反向代理,因为我们有一个特殊的用例,我们需要"取消https"连接:

http://nginx_server:8080/myserver ==> https://mysecureservice

但是会发生的是实际的https服务没有被代理.Nginx会将我重定向到实际服务,因此浏览器中的URL会发生变化.我想与Nginx进行交互,因为它是实际的服务,只是没有https.

这就是我所拥有的:

server {
    listen 0.0.0.0:8080 default_server;
    location /myserver {
        proxy_pass https://myserver/;
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $host;
    }
}
Run Code Online (Sandbox Code Playgroud)

ssl https proxy reverse-proxy nginx

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

覆盖 package-lock.json 中已安装软件包的注册表

我有大量现有的package-lock.json依赖项,已通过http://registry.npmjs.org/解决。

例如

{
  "name": "my-package",
  "version": "1.2.3",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "@babel/cli": {
      "version": "7.7.4",
      "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.7.4.tgz",
      "integrity": "sha512-O7mmzaWdm+VabWQmxuM8hqNrWGGihN83KfhPUzp2lAW4kzIMwBxujXkZbD4fMwKMYY9FXTbDvXsJqU+5XHXi4A==",
      "dev": true,
      "requires": {
        "chokidar": "^2.1.8",
        "commander": "^4.0.1",
        "convert-source-map": "^1.1.0",
        "fs-readdir-recursive": "^1.1.0",
        "glob": "^7.0.0",
        "lodash": "^4.17.13",
        "make-dir": "^2.1.0",
        "slash": "^2.0.0",
        "source-map": "^0.5.0"
      },
      "dependencies": {
        "commander": {
          "version": "4.0.1",
          "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz",
          "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==",
          "dev": true
        },
        "make-dir": {
          "version": "2.1.0",
          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
          "dev": true,
          "requires": {
            "pify": "^4.0.1",
            "semver": "^5.6.0"
          }
        },
        "pify": …
Run Code Online (Sandbox Code Playgroud)

node.js npm npm-registry

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

将根证书安装到Node.js(HTTPS客户端)

我想通过HTTPS连接到Node.js作为客户端的内部企业服务器.如何将我的内部根证书安装到Node.js,以便证书验证成功?

我不想禁用证书验证.

ssl https certificate node.js

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

存根模块功能

编辑:更准确一点.

我想为我们团队创建的Github API包装器扩展测试用例.对于测试,我们不希望直接使用API​​包装器扩展,因此我们希望将其功能存根.所有对API包装器的调用都应该被删除以进行测试,而不仅仅是创建克隆存根.

我在Node.js中有一个模块"github":

module.exports = function(args, done) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

而我要求这样:

var github = require('../services/github');
Run Code Online (Sandbox Code Playgroud)

现在,我想github(...)使用Sinon.js 存根:

var stub_github = sinon.stub(???, "github", function (args, callback) { 
    console.log("the github(...) call was stubbed out!!");
});
Run Code Online (Sandbox Code Playgroud)

但是sinon.stub(...)我希望传递一个对象和一个方法,并且不允许我存根一个函数模块.

有任何想法吗?

javascript node.js sinon

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

BrowserRouter与带有history.push()的路由器

我试图了解(v5)包和之间的区别,BrowserRouter以及Routerreact-router-dom下面的示例有什么区别。

该文件说:

BrowserRouter A,使用HTML5历史记录API(pushState,replaceState和popstate事件)使UI与URL保持同步。

来源:https : //reacttraining.com/react-router/web/api/BrowserRouter

路由器 所有路由器组件的通用底层接口。通常,应用将使用高级路由器之一代替:BrowserRouter,HashRouter,MemoryRouter,NativeRouter,StaticRouter

来源:https : //reacttraining.com/react-router/web/api/Router

据我了解,我应该为HTML5浏览器应用程序使用BrowserRouter,到目前为止,我一直在这样做。

history.push(...)示例:

我正在尝试history.push('/myNewRoute')在一个大块内执行一个:

import history as './history';

...

export function someAsyncAction(input) {
  return dispatch => {
    fetch(`${API_URL}/someUrl`, {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ input }),
    }).then(() => {
      history.push('/myNewRoute');
    }).catch((err) => {
      dispatch(setError(err));
    })
  };
};
Run Code Online (Sandbox Code Playgroud)

history 定义为此模块:

import { createBrowserHistory } from 'history';

export default createBrowserHistory();
Run Code Online (Sandbox Code Playgroud)

并且history还将传递到我的路由器: …

html5-history reactjs react-router react-thunk react-router-dom

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

IntelliJ 不提供将类转换为记录的选项

我有一大组 POJO 类(100 多个),我想将它们转换为 Java 记录。我想自动化这个过程。

我使用的是 Java 18 (Amazon Coretto JDK) 和 IntelliJ 2022.1.4(终极版):Build #IU-221.6008.13, built on July 18, 2022

coretto-18被配置为模块的默认VM。

我遵循了 IntelliJ 文档(https://www.jetbrains.com/idea/guide/tips/convert-to-record/),但上下文操作不会显示选项“转换为记录”(预期) 。

在此输入图像描述

intellij-idea java-record

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

Node.js子进程通过SIGTERM退出

我正在使用Node 6.9生成一个子进程。

const child = require('child_process').execFile('command', args); 
child.stdout.on('data', (data) => {
    console.log('child:', data);
});
child.stderr.on('data', (data) => {
    console.log('child:', data);
});
child.on('close', (code, signal) => {
    console.log(`ERROR: child terminated. Exit code: ${code}, signal: ${signal}`);
});
Run Code Online (Sandbox Code Playgroud)

我的子进程运行了大约1m 30s,但是随后从Node.js程序中获得了以下输出:

ERROR: child terminated. Exit code: null, signal: SIGTERM
Run Code Online (Sandbox Code Playgroud)

什么终止了我的孩子进程,为什么?

编辑: 我添加了killSignal:'SIGILL'作为选项。

var child = require('child_process').execFile('geth', args, { killSignal: 'SIGILL'}); 
Run Code Online (Sandbox Code Playgroud)

现在,我得到了:

ERROR: go-ethereum terminated. Exit code: 2, signal: null
Run Code Online (Sandbox Code Playgroud)

linux child-process node.js

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

防止Kubernetes中的命名空间间通信

我是Kubernetes网络的新手.

我们已经分开的Kubernetes簇成一组命名空间(例如namespace-a,namespace-b).每个命名空间都有一组Kubernetes pod.每个pod都有一个可用的服务my-svc.namespace-x.svc.cluster.local.

现在,我们要防止的命名空间的豆荚namespace-a的服务,或者是部分荚交谈namespace-b反之亦然.命名空间的通信应该不受限制.

这是我在网络政策文档中作为示例找到的:https: //kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resource

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress
Run Code Online (Sandbox Code Playgroud)

据我了解,这可以完全阻止网络通信,对于命名空间中的所有pod.

  • 如何允许所有网络流量,但仅限特定名称空间?
  • 我是否需要网络插件,如Calico,Flannel或Weave?我应该选择哪一个?

networking kubernetes kubernetes-networkpolicy

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

使用 NetworkPolicy 将“kube-system”命名空间列入白名单

我有一个多租户集群,其中通过命名空间实现多租户。每个租户都有自己的命名空间。来自租户的 Pod 无法与其他租户的 Pod 通信。但是,每个租户中的某些 Pod 必须使用 Ingress 向 Internet 公开服务。

这是我走了多远(我正在使用 Calico):

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: tenant1-isolate-namespace
  namespace: tenant1
spec:
  policyTypes:
  - Ingress
  podSelector: {} # Select all pods in this namespace
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          name: tenant1 # white list current namespace
Run Code Online (Sandbox Code Playgroud)

为每个命名空间 ( tenant1, tenant2, ... )部署,这限制了其命名空间内 pod 之间的通信。但是,这会阻止kube-system命名空间中的 Pod 与此命名空间中的 Pod 通信。

但是,kube-system默认情况下命名空间没有任何标签,因此我不能专门将此命名空间列入白名单。

我通过手动给它一个标签找到了解决这个问题的(肮脏的)解决方法:

kubectl label namespace/kube-system permission=talk-to-all
Run Code Online (Sandbox Code Playgroud)

并将白名单规则添加到网络策略中:

...
  - from:
    - namespaceSelector:
        matchLabels:
          permission: …
Run Code Online (Sandbox Code Playgroud)

kubernetes project-calico kubernetes-networkpolicy

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