如何使用Axios在MongoDB中检查现有值?
我正在学习MERN堆栈开发,并且正在通过用户登录/注册来制作练习应用程序。我已经启动并运行了Node服务器和MongoDB,并且能够注册新用户,更新用户名和密码,检索用户列表以及检索有关单个用户的信息。我正在使用Postman向Postman发送localhost:4000/credentials-test/etc
的请求/获取请求(我实际上尚未连接前端)。
我可以在我的server.js文件中使用以下代码来获取单个用户的信息:
credsRoutes.route('/user/:id').get(function(req, res) {
let id = req.params.id;
User.findById(id, function(err, user) {
res.json(user);
});
});
我认为我可以执行以下操作来检查用户名是否已存在(以防止用户名重复注册或更改用户名,并使用以下代码:
credsRoutes.route('/check-user/:username').get(function(req, res) {
let username = req.params.username;
User.find(username, function(err, user) {
if (!user)
res.json('User not found :(');
else
res.json('User found! Details:');
res.json(user);
});
});
但是,即使用户名确实属于现有用户,来自localhost:4000/credentials-test/check-username/testuser
的响应也始终是[[User not found :(
。
res.json()
时返回该函数,因为该函数的其余部分仍然可以运行,.end()
是一种将显式结束客户端请求的方法。 尝试此:
credsRoutes.route("/check-user/:username").get(function(req, res) {
const username = req.params.username;
User.find({username: username}, function(err, user) {
if (!user) {
return res.json("User not found :(").end();
}
res.json("User found! Details:");
return res.json(user).end();
});
});
`