我正在执行一些用户ID的GET请求,我确实需要按ID获取该用户个人资料 app.get('/ userID),但我不想在我的Web URL中看到ID,但不想看到用户名,该怎么办?我也在使用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'),并且无法正常工作。
感谢您的帮助
答案 0 :(得分: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()
})
您必须在动态(/:id)路线的末尾res.redirect
res.redirect( req.originalUrl.split("?").shift() );