от
Я делаю GET-запрос некоторого идентификатора пользователя, и мне действительно нужно получить этот профиль пользователя по идентификатору app.get ('/ userID), но я не хочу видеть идентификатор в своем веб-URL, но имя пользователя, как я могу это сделать? Я также использую Reactjs, я не знаю, нужно ли мне в этом случае менять внутренний или внешний интерфейс. Спасибо за помощь! мой код - бэкэнд:
 const router = express.Router()

 router.get('/:userId', (req, res, next) => {
 let userID = req.params.userId

   .....
})
мой код - интерфейс:
componentDidMount() {

let theURL = window.location.pathname.split('/')[1]
let userID = theURL.replace(theURL, '/hellotest')

getUserProfile(userID).then(
  response => {
    this.setState({
      userName: response.data.userName,
     ....
    })
  },
  error => {
    this.setState({
    ....
    })
  }
 )
}
Я попытался с window.location.pathname.replace (theURL, '/ hellotest') и не работает. Спасибо за вашу помощь              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
req.originalUrl
сохраняет исходный URL-адрес запроса, что позволяет вам свободно переписывать req.url для внутренней маршрутизации
app.use('/admin', function (req, res, next) { // GET 'http://www.example.com/admin/new'
  console.dir(req.originalUrl) // '/admin/new'
  console.dir(req.baseUrl) // '/admin'
  console.dir(req.path) // '/new'
  next()
})
Вы должны
res.redirect
в конце вашего динамического (/: id) маршрута
res.redirect( req.originalUrl.split("?").shift() );
    
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...