所以我正在构建一个运行express js的节点js应用程序,我在app.js中设置了这样的路由:
router.get("/db/:dbName", (req, res) => {
var dbName = req.params.dbName
if (dbName) {
var coll = db.collection(dbName);
coll.find().toArray()
.then(results => {
res.send(results);
})
.catch(err => {
console.error(err)
})
} else {
console.log("put a dbName")
}
})
所要做的是,单击按钮,它就会从mongodb数据库中读取并输出“ dbName”集合中的文档。 然后,我想到了一个单独的选项卡,然后输入“ localhost:3000 / db / collection”,当然它仍然可以在没有按钮的情况下工作(即,它返回集合中的所有文档)。 我的问题是,什么是阻止这种行为的方法,基本上只能在您使用按钮时使路线可访问。
答案 0 :(得分:0)
您可以使用中间件并查找仅通过单击按钮即可传递的值。如果该值未传递到服务器,则可以对其进行检查并采取相应措施
function middleware(req, res, next) {
if(req.value) {
next()
} else {
return "Some error"
}
}
app.route('/route', middleware, function(req, res) {})