最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何使用Axios在MongoDB中检查现有值?

运维笔记admin11浏览0评论

如何使用Axios在MongoDB中检查现有值?

如何使用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 :(

关于为什么会发生这种情况以及如何实施可行的解决方案的任何想法? 回答如下:您需要将查询对象传递到Mongoose模型中。同样,明智的是,当您调用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(); }); });

`
发布评论

评论列表(0)

  1. 暂无评论