我正在设置一个管理面板,管理员通过单击enter
在存储在数据库中的文本区域中输入其自定义URL。现在,我想将他重定向到他已经输入的自定义网址。那怎么可能?
在下面的代码中,如何从数据库中声明customURL
?
router.get('/blog/'+customURL, (req, res) => {
MongoClient.connect(url, function(err, db) {
if (err) throw err
var dbo = db.db("barg")
var query = { username: "a" }
dbo.collection("post").find(query).toArray(function(err, result) {
if (err) throw err
console.log(result[0].url)
res.render('blog',{
post : result[0].content
})
db.close()
})
})
})
答案 0 :(得分:1)
您需要使用的是路径参数,并检查提供的路径是否为有效的URL。如果不是,请以404 - Not found
router.get('/blog/:path', async(req, res) => {
// check if req.params.path is a valid URL in DB
const validUrl = await isValidUrl(req.params.path);
if(!validUrl) {
return res.status(404).send('not found');
}
MongoClient.connect(url, function(err, db) {
if (err) throw err
var dbo = db.db("barg")
var query = { username: "a" }
dbo.collection("post").find(query).toArray(function(err, result) {
if (err) throw err
console.log(result[0].url)
res.render('blog',{
post : result[0].content
})
db.close()
})
})
})