如何解码ExpressJS中的URI参数



我试图用ajax向我的节点express路由发送GET请求,但我不知道如何解码URI参数。

这是发送到请求GET/exercises/Day%201的内容。

我想对它进行解码,这样它就会像->第1天

然后我的查询将类似

const program = await Program.findOne({ user: req.user.id })
.populate({
path: 'exercises',
match: { dayOfWeek: Day 1 }
})
.exec();

JS文件

$('#dayOfWeek').on('change', function() {
const dayOfWeek = $('#dayOfWeek').val();
const encoded = encodeURI(dayOfWeek);
$.ajax({
type: 'GET',
url: `/exercises/${encoded}`,
dataType: 'json'
}).done((programs) => {
console.log(programs);
});
});

路由文件

router.get('/:dayOfWeek', async (req, res) => {
try {
const dow = req.params.dayOfWeek;
const program = await Program.findOne({ user: req.user.id })
.populate({
path: 'exercises',
match: { dayOfWeek: dow }
})
.exec();
//.lean();
res.send(program);
} 

谢谢你们的帮助。

您可以使用decodeURI((解码URI

const uri = 'https://google.com/a%20%201';
console.log(uri);
console.log(decodeURI(uri));
// OUTPUT
https://google.com/a%20%201
https://google.com/a  1

最新更新