#node.js #api #next.js
Вопрос:
У меня есть этот API, и я пытаюсь получить запрос, который я передаю в URL (например, products?page= 1amp;limit= 10), но я продолжаю получать пустой объект
const handler = nc().use(Cors());
handler.get(async (req, res) => {
await db.connect();
console.log(req.query)
const products = await Product.paginate({}, { page: 1, limit: 30 });
res.send(products);
});
export default handler;
Комментарии:
1. Можете ли вы вставить свой полный код?
2. Я мог бы, но что вам нужно? Это весь код, который у меня есть в этом api
3. Из чего импортируются эти объекты
const handler = nc().use(Cors());
?4. Я использую next-connect и cors
5. Это маршрут API ? Вы правильно обращаетесь к пути, например
/api/products?page=1amp;limit=10
?
Ответ №1:
console.log(req.query.page, req.query.limit)
Вы можете передавать любые реквизиты в свой api
const desiredId = 'xyz'
'https://yourAPI/getSomething?any_name_you_want=' desiredId
//in your api
console.log(req.query.any_name_you_want)
Комментарии:
1. если я обращусь к
/api/products?page=1amp;limit=1
вам, я действительно получу ответ в ответ. Тогда я не понимаю, как это реализовать? В моем запросе API указан базовый URL-/api/products
адрес, так что именно туда отправляется запрос. Когда я пытаюсь просто получить запрос, он не работаетlocalhost:3000/products?page=1
Ответ №2:
Ну, мне каким-то образом удалось это сделать, хотя, вероятно, это не лучший способ. Это работает, хотя и мое основное внимание уделяется не серверной части, поэтому я думаю, что этого достаточно
В запросе redux toolkit:
endpoints: (builder) => ({
getAllProducts: builder.query({
query: (page = 1) => `${baseUrl}?page=${page}`,
}),
В моем index.js
const router = useRouter();
const [page, setPage] = useState(1);
const { data, isLoading, error } = useGetAllProductsQuery(page);
const handlePaginationChange = (e, value) => {
e.preventDefault();
setPage(value);
router.push(`/products?page=${value}`);
};
и мой маршрут API:
const handler = nc().use(Cors());
handler.get(async (req, res) => {
await db.connect();
const products = await Product.paginate({}, { page: req.query.page, limit: 9 });
res.send(products);
});