Can't you just have:

```javascript
var handler = function(err, transaction){
  if(err) return res.error(err);
  res.result(transaction);
}
```

And then the whole thing will be just:

```javascript
  return {
    "GET": function(req, res) {
      Transaction.find({}, handler);
    },
    "POST /create": function(req, res) {
      req.body.creator = req.session.userId;
      Transaction.create(req.body, handler);
    },
    "GET /:id": function(req, res) {
      Transaction.findOne(req.params.id, handler);
    },
    "PUT /:id": function(req, res) {
      var transaction = Transaction.findById(req.params.id, function(err, transaction) {
        if (err) return res.error(err);
        _.extend(transaction, req.body);
        transaction.save(handler)
      });

    },
    "DELETE /remove": function(req, res) {
      // here was two errors but it can set in the handler also
      Transaction.findByIdAndRemove(req.params.id, req.body, handler);
    }
  }
```