连接到MongoDB时,期望在箭头函数的末尾返回一个值

时间:2019-01-31 22:36:47

标签: node.js eslint

我收到eslint错误:

[eslint] Expected to return a value at the end of arrow function. [consistent-return]

我已经检查了,每个路径都有一个return语句。但是我感觉我的回调函数正在将其抛出一个循环吗?

代码如下:

let db;

module.exports.initDb = (callback) => {
  if (db) {
    return callback(null, db);
  }

  MongoClient.connect(process.env.MONGO_URL, { useNewUrlParser: true }, (err, client) => {
    if (err) {
      return callback(err);
    }

    db = client.db('partsync');
    return callback(null, db);
  });
};

1 个答案:

答案 0 :(得分:1)

您在MongoClient.connect回调中具有正确的return语句,但是您的父箭头函数initDb需要返回。在MongoClient.connect之前添加return语句将解决此问题。这是更新的代码:

let db;

 module.exports.initDb = (callback) => {
    if (db) {
      return callback(null, db);
    }

    return MongoClient.connect(process.env.MONGO_URL, { useNewUrlParser: true }, (err, client) => {
      if (err) {
        return callback(err);
      }

      db = client.db('partsync');
      return callback(null, db);
    });
  };