【发布时间】:2018-08-23 20:35:53
【问题描述】:
有一个快速应用程序,可以将经过处理的 url 保存到 mongodb 数据库,我想使用 decodeURI() 在 res.json 中呈现解码后的 url,但它不能按预期工作,只能返回编码版本。如果我做一个 res.send(decodeURI(url)) 它工作。如何让 res.json 发送解码后的 url。
// Create a url object with escaped and trimmed data.
var Url = new UrlModel(
{ url: req.body.url }
);
if (!errors.isEmpty()) {
// There are errors. Render the form again with error messages.
res.render('index', { errors: errors.array()});
return;
}
else {
// Data from form is valid.
// Check if Url with same name already exists.
UrlModel.findOne({ 'url': req.body.url })
.exec( function(err, found_url) {
if (err) { return next(err); }
if (found_url) {
// Url exists, redirect to its detail page.
res.json({"original_url": decodeURI(found_url.url) });
//res.send(decodeURI(found_url.url))
}
更新:
我的问题可能不清楚。我的输入来自 mongodb,其格式为
https://www.facebook.com
所以我想转换它的 html 实体,我不认为 decodeUri 会这样做。 我从这段代码中得到的结果
res.json({original_url:found_url.url, decoded: decodeURI(found_url.url) });
是{"original_url":"https://www.facebook.com","decoded":"https://www.facebook.com"}
所以 url 中的 // 没有被转换为 // 。是否有一些核心 javascript 函数可以执行此操作,还是我必须使用带有 regx 的函数并替换?
【问题讨论】:
标签: javascript json node.js express