У меня две конечные точки в моем приложении express, одна - / ping - не принимает никаких параметров и работает нормально, другая - / posts, которая принимает один обязательный параметр 'tag' и два необязательных параметра 'sortBy' и ' direction '.
Приложение запускается, а в Postman / ping отлично работает с GET, однако / posts не работает должным образом
const express = require('express')
const apicache = require('apicache')
const bodyParser = require('body-parser');
const PORT = process.env.PORT || 8080; //use 8080 or use whatever Heroku gives you
const { ping, getPosts } = require('./controller')
const app = express()
//app.use(express.json())
app.use(bodyParser.json())
const cache = apicache.middleware; //as described on https://www.npmjs.com/package/apicache
app.get('/api/ping', ping) //the first requirement, a ping endpoint
app.get('/api/posts/:tag/:sortBy?/:direction?', cache('5 minutes'), getPosts) //second requirement, an endpoint that fetches posts from the hatchways website
app.listen(PORT, () => {
console.log(`Listening on port ${PORT}`)
})
Теперь согласно Express docs Я бы ожидал, что URL-адрес "localhost: 8080 / api / posts? tag = tech" будет работать, однако Почтальон говорит, что не может GET / api / posts. Что работает, попадает в URL-адрес "localhost: 8080 / api / posts / tag / tech "это не то, на что должно реагировать это приложение.
Я думаю, мне что-то не хватает в спецификациях URL. Мне нужно, чтобы он работал на localhost: 8080 / api / posts? Tag = tech, а не на localhost: 8080 / api / posts / tag / tech
Помощь приветствуется, спасибо.