5.4.2 Example: Finding Rows

Press CTRL+C to copy
# FILE: find.js var nosql = require('..'); var lib = require('./lib.js'); var adapter = 'ndb'; global.mysql_conn_properties = {}; var user_args = []; // *** program starts here *** // analyze command line var usageMessage = "Usage: node find key\n" + " -h or --help: print this message\n" + " -d or --debug: set the debug flag\n" + " --mysql_socket=value: set the mysql socket\n" + " --mysql_port=value: set the mysql port\n" + " --mysql_host=value: set the mysql host\n" + " --mysql_user=value: set the mysql user\n" + "--mysql_password=value: set the mysql password\n" + " --detail: set the detail debug flag\n" + " --adapter=<adapter>: run on the named adapter (e.g. ndb or mysql)\n" ; // handle command line arguments var i, exit, val, values; for(i = 2; i < process.argv.length ; i++) { val = process.argv[i]; switch (val) { case '--debug': case '-d': unified_debug.on(); unified_debug.level_debug(); break; case '--detail': unified_debug.on(); unified_debug.level_detail(); break; case '--help': case '-h': exit = true; break; default: values = val.split('='); if (values.length === 2) { switch (values[0]) { case '--adapter': adapter = values[1]; break; case '--mysql_socket': mysql_conn_properties.mysql_socket = values[1]; break; case '--mysql_port': mysql_conn_properties.mysql_port = values[1]; break; case '--mysql_host': mysql_conn_properties.mysql_host = values[1]; break; case '--mysql_user': mysql_conn_properties.mysql_user = values[1]; break; case '--mysql_password': mysql_conn_properties.mysql_password = values[1]; break; default: console.log('Invalid option ' + val); exit = true; } } else { user_args.push(val); } } } if (user_args.length !== 1) { console.log(usageMessage); process.exit(0); }; if (exit) { console.log(usageMessage); process.exit(0); } console.log('Running find with adapter', adapter, user_args); //create a database properties object var dbProperties = nosql.ConnectionProperties(adapter); // create a basic mapping var annotations = new nosql.TableMapping('tweet').applyToClass(lib.Tweet); //check results of find var onFind = function(err, object) { console.log('onFind.'); if (err) { console.log(err); } else { console.log('Found: ' + JSON.stringify(object)); } process.exit(0); }; // find an object var onSession = function(err, session) { if (err) { console.log('Error onSession.'); console.log(err); process.exit(0); } else { session.find(lib.Tweet, user_args[0], onFind); } }; // connect to the database nosql.openSession(dbProperties, annotations, onSession);