title: TypeError: Cannot read property 'then' of undefined when I resolved promise
body: <p>Can anyone explain why is it trowing error?
  I'm trying to fetch data from database with Credentials and check if in DB are any data corresponding to credentials but it says that <strong>Cannot read property 'then' of undefined</strong> 
  I resolved promise and added .catch block but it keep saying same thing</p>
  
  <pre><code>UserSchema.statics.findByCredentials = function (email, password){
  var User = this;
  
  User.findOne({email}).then((user) =&gt; {
      if(!user) return Promise.reject();
      return new Promise((resolve, reject) =&gt; {
          bcrypt.compare(password, user.password, (err, res) =&gt; {
              if(res) {
                  resolve(user);  
              }else{
                  reject()
              }
          })
      })
  })
  };
  
  app.post('/users/login', (req,res) =&gt; {
  var body = _.pick(req.body, ['email', 'password']);
  
  User.findByCredentials(body.email, body.password).then((user) =&gt; {
      res.send(user);
  }).catch((e) =&gt;{
      res.status(400).send();
  })
  });
  </code></pre>
  
  <p>here are my error details</p>
  
  <pre><code>TypeError: Cannot read property 'then' of undefined
  at app.post (/home/vahe/node-projects/node-todo-api/server/server.js:96:51)
  at Layer.handle [as handle_request] (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/layer.js:95:5)
  at next (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/route.js:137:13)
  at Route.dispatch (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/route.js:112:3)
  at Layer.handle [as handle_request] (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/layer.js:95:5)
  at /home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/index.js:281:22
  at Function.process_params (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/index.js:335:12)
  at next (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/index.js:275:10)
  at /home/vahe/node-projects/node-todo-api/node_modules/body-parser/lib/read.js:130:5
  at invokeCallback (/home/vahe/node-projects/node-todo-api/node_modules/raw-body/index.js:224:16)
  at done (/home/vahe/node-projects/node-todo-api/node_modules/raw-body/index.js:213:7)
  at IncomingMessage.onEnd (/home/vahe/node-projects/node-todo-api/node_modules/raw-body/index.js:273:7)
  at IncomingMessage.emit (events.js:182:13)
  at endReadableNT (_stream_readable.js:1092:12)
  at process._tickCallback (internal/process/next_tick.js:63:19)
  (node:12690) 
  UnhandledPromiseRejectionWarning: undefined
  (node:12690) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
  (node:12690) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  TypeError: Cannot read property 'then' of undefined
  at app.post (/home/vahe/node-projects/node-todo-api/server/server.js:96:51)
  at Layer.handle [as handle_request] (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/layer.js:95:5)
  at next (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/route.js:137:13)
  at Route.dispatch (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/route.js:112:3)
  at Layer.handle [as handle_request] (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/layer.js:95:5)
  at /home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/index.js:281:22
  at Function.process_params (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/index.js:335:12)
  at next (/home/vahe/node-projects/node-todo-api/node_modules/express/lib/router/index.js:275:10)
  at /home/vahe/node-projects/node-todo-api/node_modules/body-parser/lib/read.js:130:5
  at invokeCallback (/home/vahe/node-projects/node-todo-api/node_modules/raw-body/index.js:224:16)
  at done (/home/vahe/node-projects/node-todo-api/node_modules/raw-body/index.js:213:7)
  at IncomingMessage.onEnd (/home/vahe/node-projects/node-todo-api/node_modules/raw-body/index.js:273:7)
  at IncomingMessage.emit (events.js:182:13)
  at endReadableNT (_stream_readable.js:1092:12)
  at process._tickCallback (internal/process/next_tick.js:63:19)
  </code></pre>