title: Nodejs - Normal callback vs exec
body: <p>I've been learning nodejs for the last couple of days and I stumbled upon something that I can't find any good explanations to.</p>
  
  <p>Basically it's about <code>exec</code> vs a normal callback, i.e. <code>(err, res) =&gt; {}</code>, like this:</p>
  
  <pre><code>Product.find({}).exec((err, products) =&gt; {});
  
  Product.find({}, (err, products) =&gt; {});
  </code></pre>
  
  <p>I find more examples that use <code>exec</code>, but when I read about <code>exec</code> I can't really understand why. They both seem to be doing the same thing to me. </p>
  
  <p>So, my question is, should I be using one over the other, and if so, why?</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>Just to make things clear, <code>Product</code> is a MongoDB model/schema. Like this:</p>
  
  <pre><code>const Product = mongoose.model('Product', new Schema({
    title: {type: String, default: ''},
    description: {type: String, default: ''},
    price: {type: Number, default: ''}
  }));
  </code></pre>