小编GLK*_*GLK的帖子

如何从 kubernetes 集群内部访问主机的 localhost

在此应用程序中,nodejs pod 在 kubernetes 内部运行,而 mongodb 本身作为 localhost 位于主机外部。

这确实不是一个好的设计,但它只适用于开发环境。在生产中,将有一个单独的 mongodb 服务器,因为这样的选项可以在端点中具有非环回 IP,因此在生产中不会出现问题。

已考虑以下开发环境选项

  1. 使用 localhost 连接字符串连接到 mongodb,但它将引用 pod 自己的 localhost,而不是主机的 localhost

  2. 使用无头服务并在端点中提供本地主机 IP 和端口。但是端点不允许环回

建议是否有一种方法可以从集群内部(pod/nodejs 应用程序)访问主机本地主机上的 mongodb 数据库。

networking docker kubernetes

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

如何使用混合分隔符(即方括号、空格和双引号)来解析日志( nginx/apache access.log )?并可选择转换为 json

nginx 访问.log。它由 1) 空格 2) [ ] 和 3) 双引号分隔。

::1 - - [12/Oct/2021:15:26:25 +0530] "GET / HTTP/1.1" 200 1717 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"
::1 - - [12/Oct/2021:15:26:25 +0530] "GET /css/custom.css HTTP/1.1" 200 202664 "https://localhost/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"
Run Code Online (Sandbox Code Playgroud)

解析后它应该看起来像

$1 = ::1

$4 = [12/Oct/2021:15:26:25 +0530] or 12/Oct/2021:15:26:25 +0530

$5 = "GET / HTTP/1.1"

$6 = 200

$7 = 1717

$8 = "-"

$9 = "Mozilla/5.0 …

regex apache awk sed nginx

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

Selenium - 引导模态测试后,后续测试失败,错误为 ElementClickInterceptedError

启动引导模式并关闭它后,selenium 无法在页面上找到任何其他元素。

三个按钮显示在下面的屏幕中。其中 2 个按钮的功能是启动一个引导模式并关闭它,第三个按钮(中间一个)的功能是简单地接收“点击”。

单独测试时,对所有 3 个按钮的测试效果很好,但在集体测试时却失败了。

第一次启动模态并关闭它的测试将通过,但随后的测试因 ElementClickInterceptedError 而失败。

中间有足够的隐式等待,以便模态可以正确加载,但问题仍然存在。

PS - 如果您最终需要尝试,请按照以下步骤操作 1) 复制以下 2 个文件 2) 使用npm install selenium-webdriver 3) 更改测试中的 fileName 变量,根据您自己的文件夹安装 selenium webdriver 。

图 1 - 按钮

图 2 - 模态 1

错误堆栈跟踪

DevTools 监听 ws://127.0.0.1:50210/devtools/browser/81f6bc5f-c6f5-4255-9134-5efa67a92bed [13108:12832:0501/100716.495:ERROR2er3bcepter]Error_switcher3bcepter()元素点击被拦截:元素 ... 在点 (233, 67) 处不可点击。其他元素将在 Object.throwDecodedError (D:\ip300-gk\node_modules\selenium-webdriver\lib\error.js:550:15) 在 parseHttpResponse (D:\ip300-gk\node_modules\selenium-webdriver\lib\http.js:565:13) 在 Executor.execute (D:\ip300-gk\node_modules\selenium-webdriver\lib\http.js:491: 26) at processTicksAndRejections (internal/process/task_queues.js:93:5) at async Driver.execute (D:\ip300-gk\node_modules\selenium-webdriver\lib\webdriver.js:700:17) at async uitest (乙:
name: 'ElementClickInterceptedError',

测试脚本

const driver = require('selenium-webdriver')
const assert = require('assert').strict;
const {Builder, By, Key, until} = require('selenium-webdriver');

let …
Run Code Online (Sandbox Code Playgroud)

javascript selenium webdriver twitter-bootstrap selenium-webdriver

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

Babel 未按预期工作,错误:Uncaught ReferenceError:未定义 require

我正在尝试转译这个简单的代码以便在浏览器中使用,但它不起作用并且无法正常Uncaught ReferenceError: require is not defined工作require('uniq')(array);

我知道浏览器(在我的例子中是 chrome )不支持 require,但我认为这就是 babel 应该做的。

我可以使用 webpack 或 browserify,但这次我尝试使用 Babel 并遇到了这个问题。

包.json

"devDependencies": {
    "@babel/cli": "^7.11.5",
    "@babel/core": "^7.11.5",
    "@babel/preset-env": "^7.11.5"
  },
  "dependencies": {
    "@babel/polyfill": "^7.11.5",
    "uniq": "^1.0.1"
  }
Run Code Online (Sandbox Code Playgroud)

索引.js

const array = [1,1,2,2,3,5]  
require('uniq')(array)   
document.querySelector('p').innerText = array
Run Code Online (Sandbox Code Playgroud)

使用 babel 进行转译
npx babel index.js --out-file index2.js

index2.js(由babel生成)

"use strict";  
const array = [1, 1, 2, 2, 3, 5];  
require('uniq')(array);  
document.querySelector('p').innerText = array;  
Run Code Online (Sandbox Code Playgroud)

babel.config.json

{
  "presets": [
    [
      "@babel/env",
      {
        "targets": …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 babeljs

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