@@ -19,28 +19,41 @@ var db = redis.createClient();
19
19
20
20
// npm install redis
21
21
22
+ // connect to Redis
23
+
24
+ db . connect ( )
25
+ . catch ( ( err ) => console . error ( 'Redis connection error:' , err ) ) ;
26
+
22
27
var app = express ( ) ;
23
28
24
29
app . use ( express . static ( path . join ( __dirname , 'public' ) ) ) ;
25
30
26
31
// populate search
27
32
28
- db . sadd ( 'ferret' , 'tobi' ) ;
29
- db . sadd ( 'ferret' , 'loki' ) ;
30
- db . sadd ( 'ferret' , 'jane' ) ;
31
- db . sadd ( 'cat' , 'manny' ) ;
32
- db . sadd ( 'cat' , 'luna' ) ;
33
+ ( async ( ) => {
34
+ try {
35
+ await db . sAdd ( 'ferret' , 'tobi' ) ;
36
+ await db . sAdd ( 'ferret' , 'loki' ) ;
37
+ await db . sAdd ( 'ferret' , 'jane' ) ;
38
+ await db . sAdd ( 'cat' , 'manny' ) ;
39
+ await db . sAdd ( 'cat' , 'luna' ) ;
40
+ } catch ( err ) {
41
+ console . error ( 'Error populating Redis:' , err ) ;
42
+ }
43
+ } ) ( ) ;
33
44
34
45
/**
35
46
* GET search for :query.
36
47
*/
37
48
38
- app . get ( '/search/:query?' , function ( req , res , next ) {
39
- var query = req . params . query ;
40
- db . smembers ( query , function ( err , vals ) {
41
- if ( err ) return next ( err ) ;
42
- res . send ( vals ) ;
43
- } ) ;
49
+ app . get ( '/search/:query{0,1}' , function ( req , res , next ) {
50
+ var query = req . params . query || '' ;
51
+ db . sMembers ( query )
52
+ . then ( ( vals ) => res . send ( vals ) )
53
+ . catch ( ( err ) => {
54
+ console . error ( `Redis error for query "${ query } ":` , err ) ;
55
+ next ( err ) ;
56
+ } ) ;
44
57
} ) ;
45
58
46
59
/**
0 commit comments