Je souhaite créer une page de profil public dans ma demande, mais chaque fois que je frappe un itinéraire, une erreur apparaît dans la console. Je ne comprends pas quel problème est, pourriez-vous le regarder avec vos yeux frais. Permettez-moi de vous donner plus d'informations sur mon problème.
Route publique - Back-end strong> P> <Route exact path="/leaders/:id" component={PublicProfile} />
3 Réponses :
Vous confondez votre extrémité avant URL code> avec Backend URL HTTP reposante code>,
Vous devez démarrer différents deux ports pour une application de réaction et de nœud,
Vous mélangez la logique de réacteur-route avec la logique Node-Express,
Quand localhost: 3000 code> est debout pour réagir,
Vous devez choisir un numéro de port différent pour l'application Backend,
Gardez le serveur d'écouter sur ce port,
Ensuite, faites req à cette URL et communiquez vos données.
Vous devez configurer votre application correctement.
par exemple.
localhost: 3000 / leaders / leader / 2 code> pour votre extrémité avant,
faire une demande de serveur comme,
Localhost: 8000 / API / Profil / Utilisateur / 2 Code> Où 2 est $ {id} code> pour le code Backend. p>
Juste un problème que j'ai remarqué, dans votre itinéraire API, il souhaite trouver un Profil code> Who's Le champ code> correspond au paramètre que vous avez passé. axios
.get(`api/profile/user/${id}`)
Si je mettais l'utilisateur là-bas, il jette une erreur: impossible de lire la propriété '_ID' de non définie.
Pourquoi mon apparence url comme ceci: localhost: 3000 / api / profil / utilisateur / 5cf2828fb3ae541c8491634b 404 (non trouvé), cela devrait plutôt ressembler à ceci: localhost: 3000 / API / utilisateur / 5CF2828FB3AE541C8491634B A> 404 (non trouvé)
@Nzmai, attendez, mais dans votre définition de route, vous avez commenté les éléments suivants pour votre itinéraire // itinéraire Post API / Profil / Utilisateur /: user_id <--- n'est pas ce que vous voulez?
PLESE UPVOTEZ et acceptez la réponse de @christOphernGo s'il a fonctionné.
Oui, mais je pense que "profil" entre API et utilisateur ne me permet pas de continuer. Ho c'est arrivé à être là?
@Nzmai Que voulez-vous dire? Votre itinéraire de profil est explicitement / API / Profile / Utilisateur /: user_id. C'est ce que vous avez défini, et c'est la route que vous frappez sur Axios Demande :) ... assez étrange, tous vos autres itinéraires semblent fonctionner, donc je ne vois pas pourquoi celui-ci serait différent.
C'est vrai, cela n'appelle pas l'action, il a fait cependant, avant de changer mon code, mais de toute façon, il a eu une erreur. Il me rend fou)
J'ai résolu le problème, j'aurais dû utiliser la méthode FindbyId code> et les paramètres auraient dû être req.params.id code>. Donc, un code valide ressemble à ceci. // @route POST api/profile/user/:user_id
// @desc Get profile by user ID
// @access Public
router.get('/user/:id', (req, res) => {
const errors = {};
Profile.findById(req.params.id)
.populate('user', ['name', 'email', 'avatar'])
.then(profile => {
if (!profile) {
errors.nonprofile = 'There is no profile for this user';
res.status(404).json(errors);
}
res.json(profile);
})
.catch(err =>
res.status(404).json({ profile: 'There is no profile for this user' })
);
});
Quel est le port que votre serveur Nodejs est en cours d'exécution, car 3000 celui que vous appelez est le port par défaut de réagir n'est pas votre port backend.
Tous les autres itinéraires fonctionnent bien. Je suppose donc que le problème n'est pas avec des ports.
Si d'autres itinéraires fonctionnent bien, alors que l'interdiction de votre identifiant est indéfinie et que vous envoyez 404, voir la section Catch de votre backend.
Quel leader est ici,
.get (API / Profil / User / $ {id}) CODE>, et vous frappez/ LEADER / API / Profil / Utilisateur / CODE>Il n'y a pas de console.log (ID) vu sur la console, ID ne peut pas être défini sur des données spécifiques.
Oui, je ne comprends pas comment leader est arrivé car il devrait être juste '/ API / Profil / Utilisateur /: Id'. Je n'ai rien spécifié de ce genre dans mon code.