Я знаю, что вопрос о как заменить "" (пробел) на% 20 уже задан на SO, но мне нужно знать, где я могу это реализовать - я использую React Native в качестве моего внешнего интерфейса и NodeJS (ExpressJS) в качестве моего внутреннего интерфейса, подключенного к PostgreSQL DB .
Возможно ли это использовать bodyparser urlencoded
для достижения этой цели? Мне просто нужно это в 1 или 2 запроса не для всех.
Моя часть внешнего интерфейса: (вызывая это для componentDidMount)
getData("username")
.then(data => data)
.then(value => {
this.setState({username: value})
fetch(`http://xxx.xxx.xx.xx:6969/api/hours/unlock/'${value}'`) // replace " " mit %20 ?!?!?!
.then(res => res.json())
.then(result => {
console.log("** UuNamMe **" + this.state.username)
console.log("Res from UnlockTabelle : " + result)
console.log("Res from UnlockTabelle[0] : " + result[0])
})
.catch(err => console.log("ErrorLog: @unlock : " + err))
})
.catch(err => console.log(err))
Моя часть внутреннего интерфейса:
static unlockUser(username, callback) {
db.query(`SELECT * FROM unlock WHERE name = '${username}'`, (err, res) => {
if (err.error) {
callback(err);
}
callback(res);
});
}
static lockUser(username, callback) {
db.query(`DELETE FROM unlock WHERE name = '${username}'`, (err, res) => {
if (err.error) {
callback(err);
}
callback(res);
});
}
router.get("/unlock/:username", (req,res) => {
const username = req.params.username
Hours.unlockUser(username, (err, result) => {
if(err) {
return res.json(err)
}
return res.json(result)
})
})
router.delete("/lock/:username" , (req, res) => {
const username = req.params.username
Hours.lockUser(username, (err, result) => {
if(err) {
return res.json(err)
}
return res.json(result)
})
})
Если я хочу кодировать URL для заменить "" на% 20 , где это произойдет? На моем бэкенде с bodyparser или на моем внешнем интерфейсе, если да, как это будет выглядеть?