【发布时间】:2025-12-09 04:45:01
【问题描述】:
我无法在 Next 中将对象发送到我的动态 api 路由。发送常规字符串可以正常工作,我可以毫无问题地更新我的 MongoDB。当发送对象时,请求数据只是显示为 [object Object]。
这是当前的代码sn-p:
客户端
let bookData = {
title: data[i].title,
author: data[i].author,
date: data[i].date,
isbn: data[i].isbn,
description: data[i].description,
image: data[i].image
}
fetch(`/api/db/saveBook/${bookData}`);
API 路由:/pages/api/db/saveBook/[book].js
import { MongoClient } from "mongodb";
export default async function handler(req, res) {
const book = req.query;
const client = await MongoClient.connect(process.env.MONGODB_URI);
const db = client.db();
const collection = db.collection('books');
const addBook = await collection.insertOne(book);
client.close();
res.json(addBook);
}
【问题讨论】:
-
通常,数据作为 POST 请求的 payload 发送 - 用于将数据添加到数据库中。
-
@juliomalves 是的,这解决了问题。我误解了 Next 中动态 API 路由的用例。使用 fetch 设置基本 POST 请求并将后端 api 更改为标准静态路由是正确的方法。
标签: mongodb object next.js fetch