如何解决在 Prismajs 中使用简单的创建错误断言 `args[3]->IsInt32()' 失败 尝试使用端点创建帖子时出错
在 Express + Nodejs api 中
client.ts(实例化棱镜对象)
import { PrismaClient } from '@prisma/client';
// add prisma to the NodeJS global type
interface CustomNodeJsGlobal extends NodeJS.Global {
prisma: PrismaClient;
}
// Prevent multiple instances of Prisma Client in development
declare const global: CustomNodeJsGlobal;
const prisma = global.prisma || new PrismaClient();
if (process.env.NODE_ENV === 'development') global.prisma = prisma;
export default prisma;
post.ts(出现错误的地方)
// createPost Function
const createPost = async (req: FeedRequest,res: Response): Promise<void | Response> => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({
message: 'Validation fail,entered data is incorrect',errors: errors.array(),});
}
const { title,content,creator } = req.body;
const post = await prisma.posts.create({
data: {
title,creator,},});
res.status(201).json({
message: 'Post created successfully!',post: post,});
};
尝试使用端点创建帖子时出错
node/v16.0.0/bin/node[14161]: ../src/node_http_parser.cc:567:static void node::{anonymous}::Parser::Initialize(const v8::FunctionCallbackInfo<v8::Value>&): Assertion `args[3]->IsInt32()' failed.
1: 0xb12b00 node::Abort() [/versions/node/v16.0.0/bin/node]
2: 0xb12b7e [/versions/node/v16.0.0/bin/node]
3: 0xb2a282 [/versions/node/v16.0.0/bin/node]
4: 0xd5f70b [/versions/node/v16.0.0/bin/node]
5: 0xd60bac [/versions/node/v16.0.0/bin/node]
6: 0xd61226 v8::internal::Builtin_HandleApiCall(int,unsigned long*,v8::internal::Isolate*) [/versions/node/v16.0.0/bin/node]
[Node] 7: 0x160c579 [/versions/node/v16.0.0/bin/node]
如果我删除 const post = await prisma.posts.create...
部分,一切正常。我真的不确定这里发生了什么
解决方法
当前的prisma 版本(2.21.2) 与nodejs 的当前最新版本(16) 不兼容。暂时降级到 nodejs 的最后一个 LTS 解决问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。