我目前正在使用app.get和app.post从我的数据库进行输入和输出。这工作得非常好,但是当我转到Web应用程序的/login页面时,我能够看到一个大数组中所有玩家的所有数据。我在多台计算机上尝试了这个方法,似乎任何人都可以查看它。有没有办法创建app.get和app.post页面遥不可及?
我的代码片段:
app.use(express.json());
app.use(express.urlencoded());
app.post('/login', (req, res) => {
var query = { username: req.body.username };
dbo.collection("data").find(query).toArray(function(err, result) {
if(result.length == 0){
var myobj = { username: req.body.username, password: req.body.password };
dbo.collection("data").insertOne(myobj, function(err, res) {});
}
res.send(result);
});
});
app.get('/login', (req, res) => {
dbo.collection("data").find({}).toArray(function(err, result) {
if (err) throw err;
res.send(result);
});
});
我使用mongodb的无服务器示例和node.js来运行代码。
**在/login页面(example.com/login)上:**x1c 0d1x出于隐私考虑更改了密码。
1条答案
按热度按时间hfyxw5xn1#
有了大家的评论,我终于想出了解决办法!
解决这个问题的方法是使用app.post()函数将数据从index.html文件传输到index.js文件。这使得所有的事情都可以在幕后完成。有了这个信息,我可以只对res.send()发送一个布尔值而不是整个数组。这使得页面只显示“true”或“false”而不是每个人的数据。此外,我使用bcrypt来加密密码,所以即使黑客可以看到数据,他们也不能黑任何人。