Aminadav / node-run-middleware

NodeJS Express module to simulate URL requests, for internal executing REST API's
https://github.com/aminag/node-run-middleware
ISC License
65 stars 22 forks source link

setting HTTP status during SSR fails #31

Closed therealpecus closed 3 years ago

therealpecus commented 4 years ago

RunMiddleware creates a strimmed down response object that prevents SSR applications from forwarding a HTTP status code. We hit a case with Angular, where setting the correct status code for some pages works in Express, but fails when the same resource is retrieved via runMiddleware.

In general, I don't think supporting a full Response object would slow down or add excessive complexity to RunMiddleware, but at least provide methods and entries for statusCode and statusMessage.

function createRes(callback) {
  var res = {
    _removedHeader: {},
    _statusCode: 200,
    statusMessage: 'OK'
    get statusCode() {
      return this._statusCode
    },
    set statusCode(status) {
      this._statusCode = status
      this.status(status)
    }
  };

  // some code has been left out

  res.status = res.sendStatus = function(number) {
    console.log('[runMiddleware] res.status', number, res);
    code = number;
    return res;
  };
therealpecus commented 4 years ago

I just submitted a PR #32

Aminadav commented 3 years ago

Merged