错误断言 `args[3]->IsInt32()' 失败

Posted

技术标签:

【中文标题】错误断言 `args[3]->IsInt32()\' 失败【英文标题】:Error Assertion `args[3]->IsInt32()' failed错误断言 `args[3]->IsInt32()' 失败 【发布时间】:2021-01-25 07:19:47 【问题描述】: 版本:v12.19.0 平台:Linux ayungavis 5.4.0-48-generic #52~18.04.1-Ubuntu SMP Thu Sep 10 12:50:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux 子系统

哪些步骤会重现该错误?

我尝试按照Adding a Database to GraphQL 的教程进行操作,这是我的script.ts 的代码:

const  PrismaClient  = require("@prisma/client")

const prisma = new PrismaClient()

async function main() 
  const allLinks = await prisma.link.findMany()
  console.log(allLinks)


main()
  .catch(e => 
    throw e
  )
  .finally(async () => 
    await prisma.disconnect()
  )

它的繁殖频率如何?有必要条件吗?

每当我使用node src/script.tsts-node src/script.ts 运行它时。

要求:

@prisma/cli @prisma/client

预期的行为是什么?

使用 prisma 客户端显示数据库中的所有链接。

你看到了什么?

我尝试使用node src/script.tsts-node src/script.ts 运行script.ts,但显示以下错误:

/usr/bin/node[20367]: ../src/node_http_parser_impl.h:529:static void node::anonymous::Parser::Initialize(const v8::FunctionCallbackInfo<v8::Value>&): Assertion `args[3]->IsInt32()' failed.
 1: 0xa17c40 node::Abort() [/usr/bin/node]
 2: 0xa17cbe  [/usr/bin/node]
 3: 0xa3214a  [/usr/bin/node]
 4: 0xc019e9  [/usr/bin/node]
 5: 0xc037d7 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/usr/bin/node]
 6: 0x1409319  [/usr/bin/node]

附加信息

这是我的package.json 文件:


  "name": "learn",
  "version": "1.0.0",
  "description": "A GraphQL Server from scratch for learning purpose.",
  "main": "index.ts",
  "scripts": 
    "start": "dotenv -- nodemon -e ts,graphql -x ts-node src/index.ts",
    "test": "echo \"Error: no test specified\" && exit 1"
  ,
  "keywords": [],
  "dependencies": 
    "graphql-yoga": "^1.18.3"
  ,
  "devDependencies": 
    "@prisma/cli": "^2.8.1",
    "@prisma/client": "^2.8.1",
    "@types/node": "^14.11.2",
    "dotenv-cli": "^4.0.0",
    "nodemon": "^2.0.4",
    "ts-node": "^9.0.0",
    "typescript": "^4.0.3"
  

【问题讨论】:

我也遇到了这个问题,部署在 heroku 上。 2020-10-11T05:48:46.590156+00:00 app[web.1]:/app/.heroku/node/bin/node[133]:../src/node_http_parser_impl.h:529:static void node: :anonymous::Parser::Initialize(const v8::FunctionCallbackInfo<:value>&): 断言 `args[3]->IsInt32()' 失败。作为一个问题在他们的 github 上打开看起来是件好事。 @Mark yap,我在 nodejs 存储库中创建了一个问题。现在你需要将你的节点版本降级到v12.18.4或者升级到v14 【参考方案1】:

您的问题似乎与this 有关。目前,Heroku 使用的 Node.js 版本 12.19.0 存在问题,并且有一个名为 undici 的依赖项导致了该问题。如果您在 Heroku 中使用 Node 14 进行尝试,它应该可以工作。

【讨论】:

是的,你是对的。我在 nodejs 存储库中创建了一个问题,并且该错误仅显示在节点 v12.19.0 中。现在我正在将我的节点版本降级到v12.18.4,它工作正常。谢谢你的回答。

以上是关于错误断言 `args[3]->IsInt32()' 失败的主要内容,如果未能解决你的问题,请参考以下文章

golang:类型断言基本使用方法

Python 模拟 call_args_list 解包元组以对参数进行断言

在java中断言错误

OpenCV 断言失败:(-215:断言失败)npoints >= 0 &&(深度 == CV_32F || 深度 == CV_32S)

使用 theano 后端加载 keras 模型时出现断言错误

OpenCV - Mat::convertTo() 断言错误。