Skip to content

Commit bdd1508

Browse files
committed
v1.0.5
1 parent 0914201 commit bdd1508

File tree

5 files changed

+37
-19
lines changed

5 files changed

+37
-19
lines changed

index.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ module.exports = {
8585
server: function (paths, options) {
8686

8787
if (server) return server;
88+
app.disable("x-powered-by");
8889
if (options.proxy) app.set('trust proxy', options.proxy);
8990
app.use(logger('dev'));
9091
app.use(limiter);
@@ -100,8 +101,9 @@ module.exports = {
100101
for (var i = 0; i < keys.length; i++) {
101102

102103
var routeOptions = routes[keys[i]];
103-
var route = typeof options.path === 'string' && typeof routeOptions.path === 'string' ?
104-
join(options.path, routeOptions.path) : routeOptions.path || options.path;
104+
var prefix = routeOptions.prefix || options.path;
105+
var route = typeof prefix === 'string' && typeof routeOptions.path === 'string' ?
106+
join(prefix, routeOptions.path) : routeOptions.path || prefix;
105107
if (route) route = new Route(route);
106108
var method = typeof routeOptions.method === 'string' &&
107109
typeof app[routeOptions.method.toLowerCase()] === 'function' &&
@@ -149,10 +151,7 @@ module.exports = {
149151
app.use(function (err, req, res, next) {
150152

151153
debug(err);
152-
if (res.headersSent) {
153-
154-
return next(err);
155-
}
154+
if (res.headersSent) return next(err);
156155
respond(res.status(HttpStatus.getStatus(err.code) || 500), {
157156

158157
behaviour: err.name,

package-lock.json

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "backend-js",
3-
"version": "1.0.4",
3+
"version": "1.0.5",
44
"description": "Backend-js is a layer built above expressjs to enable behaviours framework for nodejs applications.",
55
"main": "index.js",
66
"scripts": {
@@ -25,6 +25,7 @@
2525
"morgan": "latest",
2626
"parseparams": "latest",
2727
"route-parser": "latest",
28+
"vhost": "latest",
2829
"snyk": "^1.530.0"
2930
},
3031
"repository": {
@@ -48,4 +49,4 @@
4849
},
4950
"homepage": "https://github.com/quaNode/backend-js#readme",
5051
"snyk": true
51-
}
52+
}

src/behaviour.js

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
var express = require('express');
66
var paginate = require('express-paginate');
77
var Route = require('route-parser');
8-
var define = require('define-js');
98
var unless = require('express-unless');
9+
var vhost = require('vhost');
10+
var define = require('define-js');
1011
var parse = require('parseparams');
1112
var { BusinessBehaviourType, BusinessBehaviour } = require('behaviours-js');
1213
var businessController = require('./controller.js').businessController;
@@ -49,6 +50,8 @@ var behaviours = {
4950

5051
var BEHAVIOURS = {};
5152

53+
var defaultRemotes = {};
54+
5255
var FetchBehaviours = {};
5356

5457
var LogBehaviours = {};
@@ -77,8 +80,6 @@ var types = {
7780

7881
var defaultPrefix = '/';
7982

80-
var defaultRemotes = {};
81-
8283
backend.behaviour = function (path, config) {
8384

8485
if (typeof app !== 'function' || typeof app.use !== 'function') {
@@ -164,8 +165,14 @@ backend.behaviour = function (path, config) {
164165
if (typeof plugin === 'function' && parse(plugin)[0] === 'out') return plugin;
165166
return res_plugin;
166167
}, undefined);
167-
var prefix = typeof path === 'string' && path.length > 0 ?
168-
join(defaultPrefix, path) : defaultPrefix !== '/' ? defaultPrefix : null;
168+
var prefix;
169+
var overwritePath;
170+
if (typeof config === 'object') overwritePath = config.overwritePath;
171+
if (typeof path === 'string' && path.length > 0) {
172+
173+
if (overwritePath) prefix = path;
174+
else prefix = join(defaultPrefix, path);
175+
} else if (defaultPrefix !== '/' && !overwritePath) prefix = defaultPrefix;
169176
var behaviour_runner = function (req, res, next, inputObjects, er) {
170177

171178
var signature = getSignature(req);
@@ -210,7 +217,7 @@ backend.behaviour = function (path, config) {
210217
request.next(error || er || new Error('Error while executing ' +
211218
options.name + ' behaviour, version ' + options.version + '!'));
212219
} else if (!res_plugin ||
213-
res_plugin(behaviourResponse, request.req, request.res, request.next)) {
220+
!res_plugin(behaviourResponse, request.req, request.res, request.next)) {
214221

215222
response.response = options.paginate ? behaviourResponse.modelObjects ||
216223
behaviourResponse : behaviourResponse;
@@ -311,6 +318,11 @@ backend.behaviour = function (path, config) {
311318
}
312319
});
313320
}
321+
if (typeof options.host === 'string' && options.host.length > 0) {
322+
323+
req_handler = vhost(options.host, req_handler);
324+
if (req_plugin) req_plugin = vhost(options.host, req_plugin);
325+
}
314326
if (isRoute) {
315327

316328
var keys = Object.keys(behaviours);
@@ -351,6 +363,7 @@ backend.behaviour = function (path, config) {
351363
version: options.version,
352364
method: options.method,
353365
path: options.path,
366+
prefix: prefix,
354367
origins: options.origins,
355368
credentials: options.credentials,
356369
maxAge: options.maxAge,
@@ -387,4 +400,4 @@ backend.behaviours = function (path, parser, remotes) {
387400
return behaviours;
388401
};
389402

390-
backend.routes = behaviours;
403+
backend.routes = behaviours;

src/log.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ module.exports.getLogBehaviour =
4747
};
4848
}
4949
};
50-
return define(getLBConstructor).extend(getRemoteBehaviour(options, config,
51-
types, BEHAVIOURS, defaultRemotes, FetchBehaviours)).defaults({
50+
return define(getLBConstructor).extend(getRemoteBehaviour(options, config, types, BEHAVIOURS,
51+
defaultRemotes, FetchBehaviours)).defaults({
5252

5353
type: types[options.type]
5454
});
55-
};
55+
};

0 commit comments

Comments
 (0)