小编Cul*_*lly的帖子

docker 更新后,Mysql 未在 MacOS 上的 docker 容器中启动

我刚刚在 MacOS 上从 2.3 版升级到 Docker Desktop 2.4。突然间,我的 mysql 容器都不会启动。日志显示这是原因:

Different lower_case_table_names settings for server ('2') and data dictionary ('0').
Data Dictionary initialization failed.
Aborting
Run Code Online (Sandbox Code Playgroud)

数据库文件安装在我主机上的一个卷中,以便它们在重新启动之间保持不变。

我终于知道为什么了。发帖是为了回答。

mysql macos docker docker-compose

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

Chrome标签内存不断增长,堆大小保持不变

我在一个单页应用程序上与一个团队合作,有很多计时器,每秒约有10个REST API调用.我们使用Chrome内存分析工具来查找所有内存泄漏 - 此时堆大小保持不变(即在垃圾收集之间).但是,我们注意到应用程序运行的时间越长,Chrome选项卡本身使用的内存就越多.几个小时后,我们看到标签内存增长到大约350MB,而堆大小仍然是6MB.如果在一夜之间运行,标签消耗超过500MB并且在早上变得无法使用.

我们需要应用程序运行很长一段时间(我们希望每周只重启一次),所以这是一个问题.

这是一小时内堆时间轴的截图.最后,标签的私有内存大小为350MB,而堆的大小保持在5.4MB左右.

在此输入图像描述

我们在Windows 7上的Chrome 40和Chrome 38中看到过这种情况.我们已禁用缓存,并以隐身模式运行应用程序.

知道为什么标签内存大小会增长到Chrome无法使用的程度,而JS堆的使用量仍然很小吗?

编辑:我们运行应用程序几天,标签内存大小高达800MB,堆大小仍然大致相同.

编辑(2015年6月9日):我不确定这是否记录在任何地方,但似乎Chrome会根据系统上的可用内存量更改它将分配给选项卡的内存量.因此,如果你有大量的可用内存,那么选项卡将占用大量内存,如果你没有太多内存,它将不会使用那么多内存.这似乎与堆大小不成比例,它可能只是Chrome保留的东西,使自己更快.这只是一个基于监控Chrome内存使用情况的理论:)

javascript memory memory-leaks google-chrome

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

Next.js,如何将一个表单提交到另一个页面?

( Next.js ) 我在一页上有一个 GET 表单。我想把它提交到另一个页面。我知道我可以将该action属性设置为其他页面。那个有效。但是,它会重新加载页面,而不仅仅是渲染新页面;如果您在页面上有一个链接而不将其包装在Link组件中,就会发生同样的情况。

我可以捕获提交事件,构建查询,并将其推送到路由器上。但是对于我认为已经弄清楚的事情,这似乎是很多额外的工作。

任何想法如何在不重新发明轮子的情况下做到这一点?

<form method='get' action='/search'>
  <input name='q' placeholder='Search' arial-label='Search' />
</form>
Run Code Online (Sandbox Code Playgroud)

javascript reactjs next.js

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

在 monorepo 中的多个项目之间共享模块

我有一个包含几个项目的小型 monorepo(它们共享相同的数据存储,因此将它们放在一个 monorepo 中进行开发和测试会更容易)。每个项目都在自己的文件夹中,有自己的 package.json。每个项目都应该单独部署(独立于其他项目)。

我想在项目之间共享一些代码。我想保持它们的相对独立性,所以我宁愿不必在根 repo 文件夹中创建“构建”步骤,也不必让每个项目都有自己的构建步骤。理想情况下,每个项目的部署将继续在项目的文件夹中完成,而无需了解其他项目。

我知道我可以在 repo 和npm link每个项目中创建一个 npm 模块。这是我倾向于的解决方案。但我想知道是否有人有更好的主意。

以下是目录结构的示例:

/package.json
/docker-compose.yml
/project-1/package.json
/project-2/package.json
Run Code Online (Sandbox Code Playgroud)

如果我使用npm link解决方案,我会添加一个project-shared文件夹之类的东西,并从project-1和链接到它project-2

node.js npm

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

Next.js,使用随机属性而不触发“与服务器/客户端不匹配”错误

我想随机生成id表单输入的属性,以防止它们与具有相同id. 如果我在同一页面上有两个登录表单,每个表单都有一个email字段,就会发生这种情况。我想要/需要设置id属性的原因是我可以forlabel对应于该输入的上设置属性。问题是这个随机生成的id在服务器端和客户端是不同的,所以next.js会报错。这是一些代码:

function uniqueId() {
    let first = (Math.random() * 46656) | 0
    let second = (Math.random() * 46656) | 0
    first = ('000' + first.toString(36)).slice(-3)
    second = ('000' + second.toString(36)).slice(-3)
    return first + second
}

const Login = () => {
    const [emailId] = useState(uniqueId())

    return (
        <form>
            <label htmlFor={emailId}>Email</label>
            <input id={emailId} name='email' type='email' />
        </form>
    )
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

警告:道具 'htmlFor' 不匹配。服务器:“email-txdmls”客户端:“email-htte8e”

知道如何生成在服务器/客户端上一致的随机 id 吗?或者也许是一种没有随机ID的不同方式?

javascript reactjs next.js

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

如何使用 docker-compose 在退出时删除匿名卷

我有一个用于运行集成测试的 docker-compose 文件。它被设置为--exit-code-from测试服务,所以当测试完成时,所有的容器都会停止。测试中涉及到一个数据库服务。它创建一个匿名卷。由于这些是测试,我不想在运行之间保留数据库。如果我正在使用docker-compose down,我也许可以使用-v(文档说它删除了命名卷;也许它也适用于匿名卷?)。所以我的问题是,如何docker-compose up在退出时删除匿名卷?

docker docker-compose

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

为什么我不能使用 npm 安装这个模块?

我对 Node.JS 非常陌生,并且已经成功地在我的 Mac 上安装了一些软件包。但我正在尝试使用以下方法安装一个名为 sbrick-protocol 的模块:

npm install sbrick-protocol
Run Code Online (Sandbox Code Playgroud)

我得到了各种我不明白的奇怪输出:

Last login: Wed Jan  1 17:00:38 on ttys000
Gemixin@iMac ~ % npm install sbrick-protocol

> xpc-connection@0.1.4 install /Users/Gemixin/node_modules/xpc-connection
> node-gyp rebuild

  CXX(target) Release/obj.target/binding/src/XpcConnection.o
../src/XpcConnection.cpp:26:77: error: too few arguments to function call,
      single argument 'context' was not specified
  target->Set(Nan::New("XpcConnection").ToLocalChecked(), tmpl->GetFunction());
                                                          ~~~~~~~~~~~~~~~~~ ^
/Users/Gemixin/Library/Caches/node-gyp/13.5.0/include/node/v8.h:6283:3: note: 
      'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/Gemixin/Library/Caches/node-gyp/13.5.0/include/node/v8config.h:419:31: note: 
      expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/XpcConnection.cpp:103:54: error: too few arguments to function call,
      single …
Run Code Online (Sandbox Code Playgroud)

javascript node.js npm

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

减少数组数组,将数据按日期连接到周数据并对值求和

所以我有一组特殊的数据:

data: [
  ['2022-01-17T16:29:24', 30], // these below would aggregate to 210
  ['2022-01-17T17:37:24', 30],
  ['2022-01-17T17:41:40', 30],
  ['2022-01-17T17:41:48', 30],
  ['2022-01-21T12:50:18', 30],
  ['2022-01-21T12:50:18', 30],
  ['2022-01-21T12:50:29', 30],        
  ['2022-01-12T12:50:18', 30], // these below would aggregate to 90
  ['2022-01-12T12:50:18', 30],
  ['2022-01-12T12:50:29', 30]
]
Run Code Online (Sandbox Code Playgroud)

我需要将其减少为周数据集。我会将日期转换为一周的开始以获取周数据moment(day).startOf('isoWeek'),然后将相似日期的数据连接起来并将其减少为单个条目。

最终结果如下:

data: [
  ['2022-01-17T00:00:00', 210],
  ['2022-01-10T00:00:00', 90]
]
Run Code Online (Sandbox Code Playgroud)

但我正在寻找如何使用的建议.reduce()或任何其他更现代的解决方案,这些解决方案将在大型设备上发挥作用。现在我为此嵌套了 for 循环(除了看起来很糟糕之外)可能性能很差,因为它在同一个数组上迭代多次。一项要求是moment应该用于日期操作,请尽量避免使用Dateobj。

现在我有这样的事情:

data: [
  ['2022-01-17T16:29:24', 30], // these below would aggregate to 210
  ['2022-01-17T17:37:24', 30],
  ['2022-01-17T17:41:40', 30],
  ['2022-01-17T17:41:48', 30],
  ['2022-01-21T12:50:18', 30],
  ['2022-01-21T12:50:18', 30], …
Run Code Online (Sandbox Code Playgroud)

javascript momentjs

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