потребляет api отдыха внутри Express: идентификатор пользователя не найден - PullRequest
0 голосов
/ 25 апреля 2018

Вдохновленный на Gettin MEAN Я делаю свое собственное заявление.Я пытаюсь подключиться к интерфейсу к интерфейсу в Express.Я скопировал текст, но мой console.log по-прежнему выдавал мне сообщение «идентификатор пользователя не найден».Я думаю, что я довольно близок к финишу.Любые советы или полезные ссылки приветствуются.

  1. Пользовательская модель

const userSchema = new Schema({

    firstName: String,
    lastName: String,
    userName: String,
    telephone: String,
    password: String
    
});
2. Маршрут в API

router
    .route('/users/:userid')
    .get(ctrlUsers.userReadOne);
    
module.exports = router;

В Почтальоне работает этот get.request (например)

http://localhost:3000/api/users/5ad87da47bb05b0594fff5b6
Вместе с книгой я запрограммировал приложение / сервер / контроллер:

маршрут:

const express = require('express');
const router = express.Router();
const ctrlUsers = require('../controllers/users');

router.get('/users/:userid', ctrlUsers.userInfo);

module.exports = router;
и контроллеры.Здесь мой console.log выдает «идентификатор пользователя не найден»

const request = require('request');
const apiOptions = {
    server: 'http://localhost:3000'
};
if (process.env.NODE_ENV === 'production') {
    apiOptions.server = 'https://pure-temple-67771.herokuapp.com';
}



/*Get myprofile */
const userInfo = function (req, res) {
    const path = '/api/users/${req.params.userid}';
    requestOptions = {
        url: apiOptions.server + path,
        method: 'GET',
        json: {}
    };

    console.log('path  ' + requestOptions.url);

    request(
        requestOptions,
        (err, response, body) => {
            _rendermyProfile(req, res, body);
            console.log(body); // no userid found 
            });
};




const _rendermyProfile = function (req, res, userDetail) {
    res.render('myProfile', {
        profile: {
            title: 'Mijn profiel',
            firstName: userDetail.firstName,
            lastName: userDetail.lastName,
            email: userDetail.email,
            telephone: userDetail.telephone
        }
    });
};






module.exports = {
    userInfo
};

1 Ответ

0 голосов
/ 25 апреля 2018

Конечно, вы не получите идентификатор пользователя, потому что у вас неправильное использование строкового литерала. Внутри вашего контроллера, изменилось с этого:

const path = '/api/users/${req.params.userid}';

к этому:

const path = `/api/users/${req.params.userid}`;

Строковый литерал работает, только если вы использовали обратную косую черту `.

Теперь ваше приложение должно правильно сделать запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...