【问题标题】:mongojs implementation of non blocking querymongojs实现非阻塞查询
【发布时间】:2012-11-19 00:04:30
【问题描述】:

我知道这一定是一个非常愚蠢的问题,但我不知道如何让它发挥作用。我正在学习 node.js 和 mongojs,这是我的问题:

这是我的 server.js

server.get("/", function(request, response) {
  if (user.whatever()) {
    return response.send('true');
  } else {
    return response.send('false');
  }
});

这是我的 user.js

exports.whatever = function(request, response) {
  return db.tableName.findOne({
    fieldName: null
  }, function(error, record) {
    if (record === null) {
      return false;
    } else {
      return true;
    }
  });
};

函数返回“未定义”。我想这是一个阻塞代码的问题,但不知道如何转换它。请帮忙!

【问题讨论】:

    标签: javascript node.js callback asynchronous


    【解决方案1】:

    你应该这样做:

    server.js

    server.get("/",user.whatever, function(request, response) {
      if (request.user)
        response.send('true');
      else
        response.send('false');
    });
    

    user.js

    exports.whatever = function(request, response, next) {
      db.tableName.findOne({ fieldName: null }, function(error, record) {
        if (record === null) request.user = false;
        else request.user = true;
        next();
      });
    };
    

    【讨论】:

    • 你100%确定这个答案吗?我试过了,但没用……我能不能把别的地方弄乱了?
    • 它应该可以工作。我想你一定想念别的东西。请确保您正确设置所有内容,或向我提供完整的文件内容。您可以使用jsfiddle.net。为您的代码 sn-ps。
    • 感谢您的帮助,您的解决方案非常完美。我真的太困了,没有注意到我错过的第一行的函数调用。再次感谢!
    猜你喜欢
    • 2013-06-18
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2018-12-17
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多