[英]How to fetch API data from Axios inside the getServerSideProps function in NextJS?
[英]How to call NextJs api that fetch data from MongoDB?
我創建了一個從 MongoDb 獲取數據的產品api。
import dbConnect from "../../../lib/mongodb";
import Products from "../../../models/Products";
export default async function handler(req, res) {
const { method } = req;
dbConnect();
if (method === "GET") {
try {
const products = await Products.find();
res.status(200).json(products);
} catch (err) {
res.status(500).json(err);
}
}
if (method === "POST") {
try {
const product = await Products.create(req.body);
res.status(201).json(product);
} catch (err) {
res.status(500).json(err);
}
}
}
我已成功連接到數據庫並在 localhost 中獲取數據。但是當我在 vercel 上部署它時,出現500 Internal Error 。 我在react-admin dataProvider.js中使用這個 api 就像那樣
import { fetchUtils } from "react-admin";
import { stringify } from "query-string";
const httpClient = fetchUtils.fetchJson;
const dataProvider = {
getList: (resource, params) => {
const { page, perPage } = params.pagination;
const query = {
range: JSON.stringify([(page - 1) * perPage, page * perPage - 1]),
};
const url = `/api/${resource}?${stringify(
query
)}`; //here the API that I call
return httpClient(url).then(({ headers, json }) => ({
data: json.map((resource) => ({ ...resource, id: resource._id })),
total: parseInt(headers.get("content-range").split("/").pop(), 10),
}));
},
};
export default dataProvider;
這里是開發者工具中網絡的截圖
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.