diff --git a/package.json b/package.json index 5554129..5c045fb 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "method-override": "^2.1.2", "morgan": "^1.3.1", "node-uuid": "^1.4.2", + "object-assign": "^4.0.1", "pluralize": "^1.1.2", "underscore-db": "^0.9.1", "update-notifier": "^0.5.0", diff --git a/src/cli/index.js b/src/cli/index.js index 92cf548..dd16162 100644 --- a/src/cli/index.js +++ b/src/cli/index.js @@ -45,9 +45,14 @@ module.exports = function () { alias: 'i', description: 'Set database id property (e.g. _id)', default: 'id' + }, + quiet: { + alias: 'q', + description: 'Suppress log messages from output' } }) .boolean('watch') + .boolean('quiet') .help('help').alias('help', 'h') .version(pkg.version).alias('version', 'v') .example('$0 db.json', '') diff --git a/src/cli/run.js b/src/cli/run.js index a87fa95..97acbe3 100644 --- a/src/cli/run.js +++ b/src/cli/run.js @@ -44,10 +44,13 @@ function createApp (source, object, routes, argv) { var defaults if (argv.static) { defaults = jsonServer.defaults({ + logger: !argv.quiet, static: path.join(process.cwd(), argv.static) }) } else { - defaults = jsonServer.defaults() + defaults = jsonServer.defaults({ + logger: !argv.quiet + }) } app.use(defaults) @@ -79,6 +82,11 @@ module.exports = function (argv) { process.exit(1) } + // noop log fn + if (argv.quiet) { + console.log = function () {} + } + console.log() console.log(chalk.cyan(' \\{^_^}/ hi!')) diff --git a/src/server/defaults.js b/src/server/defaults.js index 3b1646e..b6024a2 100644 --- a/src/server/defaults.js +++ b/src/server/defaults.js @@ -4,6 +4,7 @@ var express = require('express') var logger = require('morgan') var cors = require('cors') var errorhandler = require('errorhandler') +var objectAssign = require('object-assign') module.exports = function (opts) { var userDir = path.join(process.cwd(), 'public') @@ -12,17 +13,19 @@ module.exports = function (opts) { userDir : defaultDir - opts = opts || { static: staticDir } + opts = objectAssign({ logger: true, static: staticDir }, opts) var arr = [] // Logger - arr.push(logger('dev', { - skip: function (req, res) { - return process.env.NODE_ENV === 'test' || - req.path === '/favicon.ico' - } - })) + if (opts.logger) { + arr.push(logger('dev', { + skip: function (req, res) { + return process.env.NODE_ENV === 'test' || + req.path === '/favicon.ico' + } + })) + } // Enable CORS for all the requests, including static files arr.push(cors({ origin: true, credentials: true }))