小编use*_*872的帖子

NextJS useRouter() 在带有 Storybook 插件的单元测试中返回 null

在 NextJS 应用程序中使用 Jest 和 React 测试库将我的故事集成到单元测试中时,我遇到了问题。在 Storybook 中,我的 NextJS 组件渲染时没有问题,Storybook Addon Next Router按预期工作。但是,在我的 Jest 测试文件中,我的测试抛出错误,因为 useRouter() 返回 null。我相信我已经正确设置了所有插件。

我的设置:

问题:

我已经根据文档设置了所有文件。故事在 Storybook 中渲染得很好,并且 useRouter() 的工作得益于 Storybook Next 插件。但是,composeStories()@storybook/testing-react 中的函数似乎无法从第一个插件正确初始化 Next router Provider。我的单元测试失败并出现以下错误:

测试套件无法运行
TypeError: 无法读取 null 的属性“区域设置”

并指向我的组件内的以下行:

// Events.tsx
const { locale = 'en' } = useRouter();
Run Code Online (Sandbox Code Playgroud)

这是我的测试文件:

// Events.test.tsx
import React from 'react';
import { …
Run Code Online (Sandbox Code Playgroud)

jestjs next.js storybook react-testing-library

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

NodeJS崩溃:当找不到文档时,Mongoose findById()不会抛出错误

我试着研究这个问题的原因; 这很可能是我对Mongoose工作方式的误解.我正在尝试用REST风格创建一个CRUD后端.GET,PUT,POST似乎都有效.但是,我对DELETE动词的问题有点不知所措.

问题

我和Postman一起把一些假数据输入mongo,一切顺利.所以我复制了我的一个记录的_id字段并尝试删除.当我发送DELETE请求时,成功消息通过,记录确实已从mongo中删除.但是,在删除其他记录后,我决定尝试使用已删除的文档的_id删除记录.

我向'api/brothers/57280602953cff031f21ad9c'发送了DELETE请求

原来NodeJS崩溃了!

这是相关的服务器代码:

// DELETE a brother by id
app.delete('/api/brothers/:id', function(req, res) {

    Brother.findById(req.params.id, function(err, brother) {

      if (err) {
        // error finding brother
        res.json(err);

      } else {

        // remove record
        brother.remove(function(err, brother) {

          if (err) {
            // error removing!
            res.send(err);
          } else {

            // successful DELETE!
            res.json({
              message : "successfully deleted",
              brother : brother
            });
          }

        });
      }

    });


  });
Run Code Online (Sandbox Code Playgroud)

Nodejs崩溃,我的控制台窗口返回以下内容:

TypeError: Cannot read property 'remove' of null
[nodemon] app crashed - waiting for file …
Run Code Online (Sandbox Code Playgroud)

crash mongoose mongodb node.js express

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