小编mar*_*vic的帖子

如何处理 Next.js api 中的错误?

在 Next.js api 处理程序中组织代码的最佳实践是什么?我看了这个视频,他将所有 REST 路线放在两个文件中:

  1. pages/api/users/index.ts处理所有不需要的id操作GET /api/users - get all usersPOST pages/api/users - create a new user

  2. pages/api/users/[id].ts处理所有需要idso GET api/users/1 - get user by idPUT /api/users/1 - update user和 的操作DELETE /api/users/1 - delete a user

这意味着大量代码将进入 2 个文件并由一条switch case语句处理。所有这些代码应该如何组织?

每个case语句都应该有自己的try catch块来处理数据库调用,这会大量重复,我可以将单个语句try catch全部封装起来switch,但这会包装很多不必要的代码,也许每个语句都case需要不同的处理?我可以将 single 放在try catch高阶函数中并用它包装每个 case 块,但我不确定这也很好吗?

另外,稍后我将需要使用中间件来保护一些路由withProtectedwithRole …

javascript rest express next.js

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

像亚马逊一样具有放大效果的反应图片库

我尝试结合react-image-gallery使用react-image-magnify以获取具有放大预览效果的画廊,并且根据react-image-gallery文档我将MyReactImageMagnify组件传递给组件上的renderItem道具,ImageGallery但右侧没有放大的图像。

这是带有放大功能的图库的样子https://www.amazon.com/Samsung-MicroSD-Adapter-MB-ME128GA-AM/dp/B06XWZWYVP

这是迄今为止我所拥有的代码和盒子https://codesandbox.io/s/goofy-lumiere-gk1y1

class MyImageGallery extends Component {
  myRenderItem() {
    return <MyReactImageMagnify {...this.props} />;
  }

  render() {
    const properties = {
      thumbnailPosition: "left",
      useBrowserFullscreen: false,
      showPlayButton: false,
      renderItem: this.myRenderItem.bind(this),
      items: [
        {
          original: "https://placeimg.com/640/480/any/1",
          thumbnail: "https://placeimg.com/250/150/any/1"
        },
        {
          original: "https://placeimg.com/640/480/any/2",
          thumbnail: "https://placeimg.com/250/150/any/2"
        },
        {
          original: "https://placeimg.com/640/480/any/3",
          thumbnail: "https://placeimg.com/250/150/any/3"
        }
      ]
    };

    return <ImageGallery {...properties} />;
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:亚马逊只是为了说明“向右放大”。我制作了另一个带有 2 列网格的代码和框,您可以看到普通<MyReactImageMagnify />组件如何工作和<MyImageGallery />不工作。 …

image-gallery preview zooming reactjs

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

标签 统计

express ×1

image-gallery ×1

javascript ×1

next.js ×1

preview ×1

reactjs ×1

rest ×1

zooming ×1