小编Yor*_*rmi的帖子

babel + path + node 6.x:TypeError:Path必须是一个字符串.收到undefined

我一直在尝试将我的nodejs版本更新为6.x,但每次都会出现以下错误:

path.js:7
    throw new TypeError('Path must be a string. Received ' + inspect(path));
    ^

TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.dirname (path.js:1326:5)
    at /usr/lib/node_modules/babel-core/lib/transformation/file/options/option-manager.js:374:36
    at /usr/lib/node_modules/babel-core/lib/transformation/file/options/option-manager.js:396:22
    at Array.map (native)
    at OptionManager.resolvePresets (/usr/lib/node_modules/babel-core/lib/transformation/file/options/option-manager.js:385:20)
    at OptionManager.mergePresets (/usr/lib/node_modules/babel-core/lib/transformation/file/options/option-manager.js:369:10)
    at OptionManager.mergeOptions (/usr/lib/node_modules/babel-core/lib/transformation/file/options/option-manager.js:328:14)
    at /usr/lib/node_modules/babel-core/lib/transformation/file/options/option-manager.js:370:14
    at /usr/lib/node_modules/babel-core/lib/transformation/file/options/option-manager.js:390:24
Run Code Online (Sandbox Code Playgroud)

我试过这三个版本:

  • 的NodeJS-6.0.0-1
  • 的NodeJS-6.2.0-1
  • 的NodeJS-6.2.1-1

package.json: "babel-core": "^6.9.1"

我完全不知道从哪里开始寻找调试.有人有建议吗?:)更多信息会相关吗?让我知道 !

提前致谢 !

node.js babeljs

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

有关在已卸载组件上调用setState的警告

警告:

Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the _class component.
Run Code Online (Sandbox Code Playgroud)

知道它可以来自哪里.陷阱还是那样的事情?

我已经查看了代码中的所有setState并将其替换为确保.无法找到它的来源......

我到目前为止的观察:

  • 只在我的测试中发生
  • 浏览器没问题
  • 我以为我还有更多...但是经过更多测试后我感到很困惑,因为它不符合我认为理解的模式......

所以!我明白错误是什么,但这次警告是关于一个_class component所以我迷路了......我刚刚升级到react-routerv4,它需要进行大量更改,因此很难本地化警告的来源.

以前有人遇到过类似的问题吗?

编辑:我发现setState这导致了问题.它在react-router-server.我会调查一下,看看能不能解决它!

感谢@zerkms,因为终端中没有跟踪,所以想要使用调试器来获取行号.

我使用了v8实验检查员(/sf/answers/2793081861/).工作得很好:)

reactjs react-router

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

使用graphql-js的相关Http响应代码

好的,我正在试图找出如何使用graphql-js处理错误处理.(在没有继电器的情况下)

不够具体!?好吧,因为graphql-js捕获了解析函数中抛出的所有错误,所以我对如何正确处理错误和http响应感到困惑.

所以我的想法很少,想知道你对它的看法!

  1. 即使包含错误,也始终使用graphql响应返回200 OK.(不喜欢那个)

  2. 在result.errors [0]上切换大小写并返回关于错误的http响应,如果没有错误则返回result.data.(这最终可能成为一个很长的开关盒)

    • 处理resolve函数中的错误处理和throw和object(例如{ httpCode: 404, msg: 'No X found with the requested id' })

    • 在express app.post函数(或任何Web框架)中,有类似的东西:

      app.post('/graphql', function(req, res) {
        let result = await graphql(req.body);
      
        if(result.errors.size) {
          let e = result.errors[0];
          res.status(e.httpCode).send(e.msg);
        }
      
        res.json(result.data);
      }
      
      Run Code Online (Sandbox Code Playgroud)

    这当前不起作用,因为错误对象的编组方式...或者至少我还没有找到如何从graphql中获取它.我想也许正在研究graphql-js源码,但我想我最好先问问你们,因为我可能会遗漏一些明显的东西.

显然,欢迎更好的主意!

干杯:D

graphql graphql-js

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

标签 统计

babeljs ×1

graphql ×1

graphql-js ×1

node.js ×1

react-router ×1

reactjs ×1