我试图从Next.js 13应用程序使用appDir将种子数据应用到supbase数据库中。在一些教程和文章中,你可以将seed文件放在pages/api
中,一旦它运行下一个API服务器,seed数据就会被应用。我想尝试一下,但是用appDir构建的Next.13项目没有pages
目录。Project file structure
我试着把种子文件放在app/api
而不是pages/api
中,然后运行下一个API服务器,但是没有工作。
此外,我尝试了另一种应用seed的方法,即将seed.ts放在包含schema.prisma的prisma文件夹中,然后运行npx prisma db seed
,脚本和prisma设置如下:
package.json
{
"name": "next-learn",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"seed": "node prisma/seed.ts"
},
"dependencies": {
"@prisma/client": "4.12.0",
"@types/node": "^18.15.11",
"@types/react": "18.0.33",
"@types/react-dom": "18.0.11",
"autoprefixer": "10.4.14",
"eslint": "8.38.0",
"eslint-config-next": "13.3.0",
"next": "13.3.0",
"postcss": "8.4.21",
"prisma": "^4.12.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"tailwindcss": "3.3.1",
"typescript": "^5.0.4"
},
"devDependencies": {
"ts-node": "^10.9.1"
},
"prisma": {
"seed": "node --loader ts-node/esm prisma/seed.ts"
}
}
next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
appDir: true,
},
}
module.exports = nextConfig
我很乐意学习如何在next.js 13中使用appDir应用seed。
1条答案
按热度按时间axr492tv1#
你只需要创建pages/API文件夹,把seed.ts放在里面,然后转到localhost:3000/api/seed。Pages文件夹不应位于应用程序目录中,此文件夹必须位于项目的根目录中