Как вывести данные отправленные api через webhook

Рейтинг: 0Ответов: 1Опубликовано: 24.01.2023

Сервер лежит на ngrok, который ссылается на localhost:8080

const express = require("express")
const bodyParser = require("body-parser")

const PORT = process.env.PORT || 8080

const app = express()

app.use(bodyParser.json())

// WEBHOOK

app.post("/hook", (req, res) => {
    console.log(req.body)
    res.status(200).end()
})

router.get("/hook", (req, res) => {
    console.log(req.body)
    res.json(req.body)
})

app.listen(PORT, () => {
    console.log(`Server has been started on PORT ${PORT}`)
})

// CORS

const whitelist = ["http://localhost:3000"]
const corsOptions = {
    origin: function (origin, callback) {
        if (!origin || whitelist.indexOf(origin) !== -1) {
            callback(null, true)
        } else {
            callback(new Error("Not allowed by CORS"))
        }
    },
    credentials: true,
}
app.use(cors(corsOptions))

Данные выводятся в консоль vs code, как получать их на фронте через fetch запрос? Если делаю get запрос на адрес ngrok http://.../hook, то вылазит ошибка политики cors, get на localhost:8080/hook выдает 404

Правка:

Добавил get сразу после post:

router.get("/hook", (req, res) => {
    console.log(req.body)
    res.json(req.body)
})

Ответы

▲ 0
let data = []

router.post("/hook", (req, res) => {
    console.log(req.body)
    res.send(req.body)
    data.push(req.body)
    res.status(200).end()
})
router.get("/hook", (req, res) => {
    console.log(req.body)
    res.json(data)
})