我试图运行Prisma,使用节点js服务器与MySQL数据库集成。在将Prisma模式迁移到MySql数据库后,我在Mac m1上得到以下错误,我已经验证了数据库URL配置是否正确。我已经尝试过强制清除缓存,重新安装npm,重新启动pc,并重新启动VsCode。
'/Users/apple/.cache/prisma/master/bcc2ff906db47790ee902e7bbc76d7ffb1893009/darwin-arm64/prisma-fmt‘@Apples %
当我尝试运行server.js文件时,我会得到以下错误
@prisma/client尚未初始化。请运行"prisma generate“并尝试再次导入它。如果此错误对您来说是意外的,请在新的(/Users/apple/Desktop/react-i/servers/node_modules/.prisma/client/index.js:3:11) at Object的 中报告。(/Users/apple/Desktop/react-i/servers/authenticate.js:7:16) at Module._compile (节点:内部/模块/cjs/加载程序:1101:14),在Object.Module._extensions..js (节点:内部/模块/cjs/加载程序:1153:10),Module.load (节点:Module._compile/模块/cjs/加载程序:981:32)在Module.require (节点: Function.Module._load /模块/cjs/加载程序:822:12)(节点:Module._compile/模块/cjs/加载程序:981:32)(节点:Function.Module._load/模块/cjs/加载程序:822:12)/loader:1005:19) (节点:内部/模块/cjs/helpers:102:18)。(/Users/apple/Desktop/react-i/servers/server.js:7:18) at Module._compile (node:internal/modules/cjs/loader:1101:14)
运行npx生成将再次给出第一个错误
任何帮助都是非常感谢的。
以下是相关的服务器代码片段
const { PrismaClient } = require("@prisma/client");
const crypto = require('crypto');
const express = require('express');
const route = express.Router();
const jwt = require('jsonwebtoken');
const prisma = new PrismaClient();
const addUserToDb = async user => {
try {
const newUser = await prisma.users.create({
data: {
email: user.email,
username: user.username,
password: hashPassword(user.password),
isAdmin: true,
},
});
console.log(JSON.stringify(newUser));
} catch (e) {
console.error(e);
return 'problem adding user to db';
}
return 'user added to db';
};
const hashPassword = password => {
let salt = crypto.randomBytes(16).toString('hex');
hashedpwd = crypto.pbkdf2Sync(password, salt, 1000, 64, 'sha512');
console.log(hashedpwd);
return hashedpwd;
};
const generateToken = (user, time = '300s') =>
jwt.sign(user, process.env.ACCESS_TOKEN_SECRET, { expiresIn: time });
route.post('/register', (req, res) => {
let newUser = req.body.userRegister;
const accessToken = jwt.sign(newUser, process.env.ACCESS_TOKEN_SECRET);
res.json({ user: addUserToDb(newUser), token: accessToken });
});
module.exports = route;
//prisma.schema code
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model Users {
id String @id @default(uuid())
username String @unique @db.VarChar(255)
email String? @unique @db.VarChar(255)
password String @db.VarChar(255)
refreshToken String?
passwordResetToken String?
profileImgUrl String?
customers Customers?
role String @default("user")
@@map(name: "users")
}
model Services {
id Int @id @default(autoincrement())
orders Orders[]
title String
description String
SAC String? @unique @db.VarChar(255)
@@map(name: "services")
}
model Customers {
customers Users @relation(fields: [customerId], references: [id])
customerId String @unique
firstName String
lastName String
phoneNumber Int
address String
State String
Pincode Int
City String?
orders Orders[]
@@map(name: "customers")
}
model Orders {
id Int @id @default(autoincrement())
value Float
createdAt DateTime @default(now())
service Services @relation(fields: [serviceId], references: [id])
serviceId Int
customer Customers @relation(fields: [customerId], references: [customerId])
customerId String
@@map(name: "orders")
}
model Reviews {
id Int @id @default(autoincrement())
title String @db.VarChar(255)
starRating Int
content String?
@@map(name: "reviews")
}
发布于 2022-02-21 09:30:01
删除该目录/Users/apple/..cache/中缓存的Prisma文件夹,并重新初始化Prisma以使其再次工作
发布于 2022-11-11 12:30:47
帮助我解决这个问题的是删除@Ilamuhil所提到的/Users/apple/.cache/prisma
目录,但我并没有在npm或from中重新安装prisma migrate dev
,我只是在我的项目中只在本地安装了prisma,它成功了。
https://stackoverflow.com/questions/71140478
复制相似问题