express.js - rozdzielenie kilku funkcji app.get i post do osobnych plików...

0

Witam. Mam plik app.js, a w nim kilka ścieżek. Na próbę postanowiłem tylko jedną funkcję oddzielić. Poczytałem, że muszę to zrobić za pomocą routera. I tak:
W app.js, napisałem dwie linijki:

const userRouter = require('./routes/contacts.js');
app.use('/contacts', userRouter);

Potem stworzyłem folder routes, a w nim plik.contact.js
Plik ten zaczyna się i kończy tak:

const express = require("express");
const router = express.Router();

router.post("/add-contact", (req, res) => {
//...
  });
  
  module.exports = router;

Kiedy wysyłam żądanie POST z formularza (http://localhost:3000/add-contact), w przeglądarce pojawia się taki error:

Cannot POST /add-contact

Podrzucam link do gita projektu, jest to mała aplikacja:
https://github.com/KrwawyOrk/tibiantis-contact-list/tree/router-testing

App.js - linjka 61 i 62

0
const userRouter = require('./routes/contacts');
app.use('/contacts', userRouter); // tutaj musi być główny adres, czyli sam /

Teraz będą Ci się tworzyć adresy takiego typu /contacts/add-contact, /contacts/xxx, /contacts/yyy, bo w app.use ustawiłeś prefix jako /contacts.

Możesz to sobie dokładnie zdebugować jeśli wyświetlisz wszystkie routy z aplikacji
https://stackoverflow.com/a/14934933

0

Ok, działa już :) bardzo dziękuję.
W nocy jeszcze walczyłem z tym, być może wcześniej zrobiłem to co zasugerowałeś "/" ale przekombinowałem potem w plikach pug zmieniając adresy...

1 użytkowników online, w tym zalogowanych: 0, gości: 1