小编flo*_*nkt的帖子

如何调试仅在生产部署中出现的 Next.js 水合错误

我有一个部署到 Vercel 的 nextjs 应用程序。当运行下一个开发时,我没有出现水合错误。但在部署到 Vercel 时,生产版本显示了几个缩小的反应错误。

我的问题:我不知道如何调试它们。由于反应错误已缩小,因此没有太多有用的信息。

有谁知道在这种情况下如何禁用错误缩小或如何获得正确的堆栈跟踪?

next.js vercel

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

AWS:将事件桥事件转发到加密的 SQS(Amazon 托管密钥)

我有一个事件总线并创建了一个将事件转发到 SQS 队列的事件规则。现在,我使用默认的亚马逊管理密钥 (alias/aws/sqs) 为队列启用了加密。

启用加密后,事件不再转发。研究 AWS 文档时,我只能找到有关使用 CMK 进行加密的信息,但没有找到有关亚马逊托管密钥的信息。

我猜这是一个权限问题,但不确定。这是我的活动规则和访问策略

  queueCreateInvoiceEvent:
    Type: AWS::Events::Rule
    DependsOn: [myQueue]
    Properties:
      Description: Forward INVOICE_CREATED event to SQS queue
      EventBusName: ${self:custom.eventBus.name}
      EventPattern: { "detail-type": ["INVOICE_CREATED"] }
      Name: ${self:service.name}-${self:provider.stage}-buffer-invoice-created-event
      State: ENABLED
      Targets:
        - Id: myQueue
          Arn:
            Fn::GetAtt: [myQueue, Arn]


  createReceiptQueueAccessPolicy:
    Type: AWS::SQS::QueuePolicy
    DependsOn: [queueCreateInvoiceEvent, myQueue]
    Properties:
      Queues:
        - { Ref: createReceiptQueue }
      PolicyDocument:
        Id: EventBridgeSqsAccessPolicy
        Version: "2012-10-17"
        Statement:
          - Sid: Allow-User-SendMessage
            Effect: Allow
            Principal:
              Service: "events.amazonaws.com"
            Action:
              - sqs:SendMessage
            Resource:
              - Fn::GetAtt: ["myQueue", "Arn"]
            Condition:
              ArnEquals: …
Run Code Online (Sandbox Code Playgroud)

amazon-sqs amazon-web-services aws-event-bridge

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

首次加载时未显示 React Material Tabs 指示器

我有一个带有 React Material UI ( https://material-ui.com/components/tabs/ )的简单选项卡设置,其中路径值是动态设置的

export const Subnav: React.FC<Props> = ({ routes = [] }) => {
  const { pathname } = useLocation();
  const { push } = useHistory();    
  const handleChange = (e: ChangeEvent<{}>, path: string) => push(path);

  return (
    <Tabs
      indicatorColor="primary"
      onChange={handleChange}
      scrollButtons="auto"
      textColor="primary"
      value={pathname}
      variant="scrollable"
    >
      {routes.map(r => (
        <Tab label={r.name} value={r.path} />
      ))}
    </Tabs>
  );
};
Run Code Online (Sandbox Code Playgroud)

当我第一次加载页面/导航到其中一个选项卡路由时,选择了正确的选项卡,但未显示指示器。为了显示指标,我必须再次单击同一个选项卡或选择另一个选项卡。

reactjs material-ui

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

Mongoose 批量更新多个不同值的文档——使用时间戳和鉴别器

我有一个同时设置时间戳和鉴别器键选项的模式。使用Model.save(),一切正常,但Model.bulkWrite既不使用我的鉴别键也不使用时间戳被保存/更新。

mongoose 有没有办法批量更新文档(每个文档都有不同的值)并维护关于模式选项的行为,比如 in Model.save()

我的用例是我有大约 500 个文档,我必须检查每个文档是否已经存在(如果存在则更新它的一部分),如果不存在则插入一个完整的新记录。除了模式选项不起作用之外,这适用于bulkWrite一系列updateOne操作。

mongoose mongodb node.js mongoose-schema

5
推荐指数
0
解决办法
427
查看次数

Typescript深度替换多种类型

我将 mongodb 与 @types/mongodb 一起使用。这为我提供了一个很好的 FilterQuery 接口,用于我的 mogodb 查询形状文档集合。在我的域对象类中,我有一些额外的逻辑,例如将日期转换为时刻对象或将浮点数转换为 BigNumber 对象。

对于我的查询,我需要将它们转换回来,例如,需要将 Moment 对象转换为日期对象等等。为了避免重复和维护单独的接口(仅用于查询),我想到使用映射类型将所有 Moment 类型替换为 Date 类型

type DeepReplace<T, Conditon, Replacement> = {
  [P in keyof T]: T[P] extends Conditon
    ? Replacement
    : T[P] extends object
    ? DeepReplace<T[P], Conditon, Replacement>
    : T[P];
};


class MyDoaminClass {
  date: Moment;
  nested: {
    date: Moment;
  };
}

const query: DeepReplace<MyDoaminClass, Moment, Date> = {
  date: moment().toDate(),
  nested: {
    date: moment().toDate()
  }
};
Run Code Online (Sandbox Code Playgroud)

这基本上是可行的,但我有大约 4-5 个这样的类型需要更换。是否有一种优雅的方法来链接多个 DeepReplace 类型,甚至更好:在一个地方指定所有类型替换?我想避免类似的事情type ReplaceHell = DeepReplace<DeepReplace<DeepReplace<MyDoaminClass, Moment, …

typescript mapped-types conditional-types

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

步骤函数将字符串转换为数字

aws 步骤函数中有没有办法将字符串转换为数字?

我有一个从 api 网关传递到步骤函数的查询参数。它是一个带有数值的字符串。我想将字符串转换为步骤函数状态语言中的数字,但到目前为止还没有运气。

amazon-web-services aws-step-functions

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

在 Model.findOneAndUpdate 中使用事务

如何在猫鼬中使用 Model.findOneAndUpdate() 进行事务?

我有一个会话对象,我想将 findOneAndUpdate 操作作为事务的一部分提交,但不知道如何传递我的会话对象。

const session = params?.mongoose?.session;

const doc = await this.Model.findOneAndUpdate(
  { sequence: sequence },
  {
    $setOnInsert: { sequenceLength: sequenceLength },
    $inc: { value: 1 }
  },
  { upsert: true, new: true }
);
Run Code Online (Sandbox Code Playgroud)

transactions mongoose

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

NestJS处理服务异常

我正在开发一个 NestJS 应用程序,其中我的服务并不总是由控制器或任何 http 请求调用。相反,某些服务由 cron 计划调用来定期获取数据。

在这种情况下处理错误的最佳方法是什么?我实现了一个“catch-all”异常过滤器,但是当我的服务被“内部”调用(不是由控制器/请求)时,错误不会被捕获,并且我有一个未捕获的承诺错误。

nestjs

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

在装饰器中使用全局嵌套模块

我在 nest 中有一个全局记录器模块,它记录到云日志服务。我正在尝试创建一个添加日志记录功能的类方法装饰器。但是我正在努力如何在装饰器中注入全局嵌套模块的服务,因为我在文档中找到的所有依赖注入机制依赖都是基于类或类属性的注入。

export function logDecorator() {

  // I would like to inject a LoggerService that is a provider of a global logger module
  let logger = ???

  return (target: any, propertyKey: string, propertyDescriptor: PropertyDescriptor) => {
    //get original method
    const originalMethod = propertyDescriptor.value;

    //redefine descriptor value within own function block
    propertyDescriptor.value = function(...args: any[]) {
      logger.log(`${propertyKey} method called with args.`);
      
      //attach original method implementation
      const result = originalMethod.apply(this, args);

      //log result of method
      logger.log(`${propertyKey} method return value`);
    };
  }; …
Run Code Online (Sandbox Code Playgroud)

nestjs

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

在 konva 中沿直线或路径对形状进行动画处理

Konva 是否可以沿线/路径对形状(标记、圆形)进行动画处理。我尝试随着时间的推移手动计算位置,但这只有在从 A 到 B 的直线是直线时才可行,但我对贝塞尔曲线和多个路径点感兴趣。

所以我想知道 Konva 是否支持这种事情,或者有人可以指导如何处理这个问题。

html5-canvas konvajs react-konva

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