我想我错过了一些明显的东西,但我需要另一个头脑来让我摆脱困境.
我的目标是:从nextjs访问POST请求的主体,如本页面所示. https://nextjs.org/docs/pages/building-your-application/data-fetching/building-forms个
// root folder page.js file
//===========================
import Image from 'next/image'
import styles from './page.module.css'
export default function Home() {
return (
<main className={styles.main}>
<div className={styles.description}>
<p>
<form action="/route" method="post">
<label for="first">First name:</label>
<input type="text" id="first" name="first"/><br/><br/>
<label for="last">Last name:</label>
<input type="text" id="last" name="last"/><br/><br/>
<input type="submit" value="Submit"/>
</form>
</p>
</div>
</main>
)
}
// /response/response.js
// ===========================
import { NextResponse } from 'next/server';
export async function GET(req, res) {
console.log("====GET====");
console.log(req.body);
return NextResponse.json("get");
}
export async function POST(req) {
const body = req.body;
console.log(body);
return NextResponse.json("post");
}
我填写了表格,浏览器就会正确地路由到"POST"回复,并在我提交时转发到"GET"回复列表.但是,在服务器端,会记录响应正文:
ReadableStream { locked: false, state: 'readable', supportsBYOB: false }
个
当我阅读链接以及关于nextjs和处理POST请求的所有其他文档时,POST的内容就好像它是一个对象,而不是一个可读的流.此外,我在nextjs的网站上找不到任何显示如何解码可读流的内容,这似乎对一个常见任务来说是一个有点广泛的解决方案.
我很确定我错过了一些平凡的细节,比如把小数点放错了地方,但我需要帮助找到它.
感谢一群人!
克里斯·鲁德