如何在Next.js中创建Post End Points相同的文件

muk1a3rh  于 2023-04-05  发布在  其他
关注(0)|答案(1)|浏览(121)

我想创建两个POST HTTP端点在同一个文件中nextjs 13一个后端点创建一个用户第二个端点获取一个用户。是否可以在同一个文件中创建两个相同的HTTP端点。

// Create a New User
export async function POST(request, query) {
  const { db } = await connectToDatabase()
  const json = await request.json()
  const collection = db.collection("users")
  const result = await collection.insertOne(json)
  return NextResponse.json(json)
}

// Get a Single user by user ID
export async function POST(request, query) {
  return NextResponse.json({ user: "get user by id " })
}
d5vmydt9

d5vmydt91#

不可能在同一个文件中创建两个具有相同名称(POST)和签名(request,query)的HTTP端点。当您定义两个具有相同名称和签名的函数时,第二个函数将覆盖第一个函数,并且您的代码中只有一个HTTP端点。
为了解决这个问题,你必须为你的函数使用不同的名称,或者为你的端点使用不同的HTTP方法(GET,POST等)。下面是一个如何修改代码以实现预期结果的例子:

// Create a New User
    export async function createUser(request, query) {
    const { db } = await connectToDatabase()
    const json = await request.json()
    const collection = db.collection("users")
    const result = await collection.insertOne(json)
    return NextResponse.json(json)
    }
    
    // Get a Single user by user ID
    export async function getUser(request, query) {
    return NextResponse.json({ user: "get user by id " })
    }

相关问题