diff --git a/examples/search/index.js b/examples/search/index.js index 29f9f941b2..b0ef35f3ed 100644 --- a/examples/search/index.js +++ b/examples/search/index.js @@ -15,7 +15,7 @@ var express = require('../..'); var path = require('path'); var redis = require('redis'); -var db = redis.createClient(); +var db = redis.createClient() // npm install redis @@ -24,12 +24,13 @@ var app = express(); app.use(express.static(path.join(__dirname, 'public'))); // populate search - -db.sadd('ferret', 'tobi'); -db.sadd('ferret', 'loki'); -db.sadd('ferret', 'jane'); -db.sadd('cat', 'manny'); -db.sadd('cat', 'luna'); +db.on('ready', function(){ + db.sAdd('ferret', 'tobi'); + db.sAdd('ferret', 'loki'); + db.sAdd('ferret', 'jane'); + db.sAdd('cat', 'manny'); + db.sAdd('cat', 'luna'); +}); /** * GET search for :query. diff --git a/examples/static-files/index.js b/examples/static-files/index.js index 4939d8a2bb..aaf3fac3f0 100644 --- a/examples/static-files/index.js +++ b/examples/static-files/index.js @@ -35,9 +35,12 @@ app.use('/static', express.static(path.join(__dirname, 'public'))); // this will allow "GET /style.css" instead of "GET /css/style.css": app.use(express.static(path.join(__dirname, 'public', 'css'))); -app.listen(process.env.PORT || 3000); -console.log(`listening on port ${process.env.PORT || 3000}`); -console.log('try:'); -console.log(' GET /hello.txt'); -console.log(' GET /js/app.js'); -console.log(' GET /css/style.css'); +if (!require.main) { + const server = app.listen(); + app.close = () => server.close(); + console.log(`Express started on port ${server.address().port}`); + console.log('try:'); + console.log(' GET /hello.txt'); + console.log(' GET /js/app.js'); + console.log(' GET /css/style.css'); +} diff --git a/package-lock.json b/package-lock.json index 0b4826a54c..a6309c26a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,9 @@ "method-override": "^3.0.0", "morgan": "^1.10.0", "multiparty": "^4.2.3", + "online": "^0.0.1", "pbkdf2-password": "^1.2.1", + "redis": "^4.6.12", "supertest": "^6.3.3", "vhost": "^3.0.2" }, @@ -228,6 +230,65 @@ "node": ">= 8" } }, + "node_modules/@redis/bloom": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz", + "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", + "dev": true, + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/client": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.5.13.tgz", + "integrity": "sha512-epkUM9D0Sdmt93/8Ozk43PNjLi36RZzG+d/T1Gdu5AI8jvghonTeLYV69WVWdilvFo+PYxbP0TZ0saMvr6nscQ==", + "dev": true, + "dependencies": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/graph": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz", + "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", + "dev": true, + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/json": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.6.tgz", + "integrity": "sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==", + "dev": true, + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/search": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.1.6.tgz", + "integrity": "sha512-mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==", + "dev": true, + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/time-series": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.0.5.tgz", + "integrity": "sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==", + "dev": true, + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -544,6 +605,15 @@ "@colors/colors": "1.5.0" } }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1317,6 +1387,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/get-intrinsic": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", @@ -2018,6 +2097,15 @@ "wrappy": "1" } }, + "node_modules/online": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/online/-/online-0.0.1.tgz", + "integrity": "sha512-ugHXhRC6D1WtNIFcYIgMtc3BIz4WUV9QbAzZmd2XCQevGXfsmKq1ftXujAKNCVkUwhMD8y3tGBD+zn8aY2WeOA==", + "dev": true, + "dependencies": { + "debug": "*" + } + }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -2262,6 +2350,20 @@ "node": ">= 0.8" } }, + "node_modules/redis": { + "version": "4.6.12", + "resolved": "https://registry.npmjs.org/redis/-/redis-4.6.12.tgz", + "integrity": "sha512-41Xuuko6P4uH4VPe5nE3BqXHB7a9lkFL0J29AlxKaIfD6eWO8VO/5PDF9ad2oS+mswMsfFxaM5DlE3tnXT+P8Q==", + "dev": true, + "dependencies": { + "@redis/bloom": "1.2.0", + "@redis/client": "1.5.13", + "@redis/graph": "1.1.1", + "@redis/json": "1.0.6", + "@redis/search": "1.1.6", + "@redis/time-series": "1.0.5" + } + }, "node_modules/reinterval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", @@ -2382,12 +2484,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/send": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/send/-/send-1.0.0-beta.1.tgz", @@ -2815,6 +2911,12 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index b9e41f97d5..d34d487b23 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,9 @@ "method-override": "^3.0.0", "morgan": "^1.10.0", "multiparty": "^4.2.3", + "online": "^0.0.1", "pbkdf2-password": "^1.2.1", + "redis": "^4.6.12", "supertest": "^6.3.3", "vhost": "^3.0.2" },