Uploaded image for project: 'CouchDB'
  1. CouchDB
  2. COUCHDB-1223

require() an empty file will throw error

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.1.1, 1.2
    • None
    • None

    Description

      When the file I require() is empty CouchDB throws an error.

      {"error":"compilation_error","reason":"Module require('kanso/core') raised error [\"error\", \"compilation_error\", \"Module require('lib/app') raised error [\\\"error\\\", \\\"invalid_require_path\\\", \\\"Object has no property \\\\\\\"views\\\\\\\". {\\\\\\\"views\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"app\\\\\\\":\\\\\\\"/**\\\\\\\\u000a * Values exported from this module will automatically be used to generate\\\\\\\\u000a * the design doc pushed to CouchDB.\\\\\\\\u000a */\\\\\\\\u000a\\\\\\\\u000amodule.exports =

      {\\\\\\\\u000a types: require('./types'),\\\\\\\\u000a shows: require('./shows'),\\\\\\\\u000a lists: require('./lists'),\\\\\\\\u000a views: require('./views'),\\\\\\\\u000a updates: require('./updates'),\\\\\\\\u000a filters: require('./filters'),\\\\\\\\u000a rewrites: require('./rewrites'),\\\\\\\\u000a validate_doc_update: require('./validate'),\\\\\\\\u000a events: require('./events')\\\\\\\\u000a}

      ;\\\\\\\\u000a\\\\\\\",\\\\\\\"events\\\\\\\":\\\\\\\"/*\\\\\\\\u000a * Bindings to Kanso events\\\\\\\\u000a */\\\\\\\\u000a\\\\\\\\u000avar events = require('kanso/events');\\\\\\\\u000a\\\\\\\\u000a\\\\\\\\u000a/\\\\\\\\u000a * The init method fires when the app is initially loaded from a page rendered\\\\\\\\u000a * by CouchDB.\\\\\\\\u000a */\\\\\\\\u000a\\\\\\\\u000a/*\\\\\\\\u000a * events.on('init', function ()

      {\\\\\\\\u000a * // app initialization code goes here...\\\\\\\\u000a * }

      );\\\\\\\\u000a /\\\\\\\\u000a\\\\\\\\u000a\\\\\\\\u000a/\\\\\\\\u000a * The sessionChange event fires when the app is first loaded and the user's\\\\\\\\u000a * session information becomes available. It is also fired whenever a change\\\\\\\\u000a * to the user's session is detected, for example after logging in or out.\\\\\\\\u000a */\\\\\\\\u000a\\\\\\\\u000a/*\\\\\\\\u000a * events.on('sessionChange', function (userCtx, req)

      {\\\\\\\\u000a * // session change handling code goes here...\\\\\\\\u000a * }

      );\\\\\\\\u000a /\\\\\\\\u000a\\\\\\\\u000a\\\\\\\\u000a/*\\\\\\\\u000a * The updateFailure event fires when an update function returns a document as\\\\\\\\u000a * the first part of an array, but the client-side request to update the\\\\\\\\u000a * document fails.\\\\\\\\u000a */\\\\\\\\u000a\\\\\\\\u000aevents.on('updateFailure', function (err, info, req, res, doc)

      {\\\\\\\\u000a alert(err.message || err.toString());\\\\\\\\u000a}

      );\\\\\\\\u000a\\\\\\\",\\\\\\\"filters\\\\\\\":\\\\\\\"/*\\\\\\\\u000a * \\\\\\\\u000a */\\\\\\\",\\\\\\\"lists\\\\\\\":\\\\\\\"/*\\\\\\\\u000a * Lists\\\\\\\\u000a */\\\\\\\",\\\\\\\"rewrites\\\\\\\":\\\\\\\"//-----------------------------------------------------------------------------\\\\\\\\u000a// Init\\\\\\\\u000a//----------------------------------------------------------------------------\\\\\\\\u000a//----------------------------------------------------------------------------\\\\\\\\u000a// Rewrites\\\\\\\\u000a//-----------------------------------------------------------------------------\\\\\\\\u000amodule.exports = [

      {\\\\\\\\u000a \\\\\\\\\\\\\\\"method\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"GET\\\\\\\\\\\\\\\",\\\\\\\\u000a \\\\\\\\\\\\\\\"from\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"/tests\\\\\\\\\\\\\\\",\\\\\\\\u000a \\\\\\\\\\\\\\\"to\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"_show/tests\\\\\\\\\\\\\\\"\\\\\\\\u000a}

      ,

      {\\\\\\\\u000a \\\\\\\\\\\\\\\"method\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"*\\\\\\\\\\\\\\\",\\\\\\\\u000a \\\\\\\\\\\\\\\"from\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"*\\\\\\\\\\\\\\\",\\\\\\\\u000a \\\\\\\\\\\\\\\"to\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"../../../*\\\\\\\\\\\\\\\"\\\\\\\\u000a}

      ];\\\\\\\",\\\\\\\"shows\\\\\\\":\\\\\\\"//-----------------------------------------------------------------------------\\\\\\\\u000a// Init\\\\\\\\u000a//----------------------------------------------------------------------------\\\\\\\\u000avar templates = require('kanso/templates');\\\\\\\\u000a\\\\\\\\u000a//----------------------------------------------------------------------------\\\\\\\\u000a// Shows\\\\\\\\u000a//-----------------------------------------------------------------------------\\\\\\\\u000aexports.tests = function(doc, req) {\\\\\\\\u000a\\\\\\\\u000a var scripts = templates.render('tests.html', req, {});\\\\\\\\u000a \\\\\\\\u000a var body = templates.render('base.html', req,

      {\\\\\\\\u000a \\\\\\\\\\\\\\\"title\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"Jasmine Spec Runner\\\\\\\\\\\\\\\",\\\\\\\\u000a \\\\\\\\\\\\\\\"scripts\\\\\\\\\\\\\\\": scripts,\\\\\\\\u000a \\\\\\\\\\\\\\\"content\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\u000a }

      );\\\\\\\\u000a\\\\\\\\u000a return {\\\\\\\\u000a \\\\\\\\\\\\\\\"headers\\\\\\\\\\\\\\\":

      {\\\\\\\\u000a \\\\\\\\\\\\\\\"Content-Type\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"text/html\\\\\\\\\\\\\\\"\\\\\\\\u000a }

      ,\\\\\\\\u000a \\\\\\\\\\\\\\\"body\\\\\\\\\\\\\\\": body\\\\\\\\u000a };\\\\\\\\u000a\\\\\\\\u000a};\\\\\\\\u000a\\\\\\\\u000aexports.not_found = function(doc, req) {\\\\\\\\u000a return {\\\\\\\\u000a \\\\\\\\\\\\\\\"title\\\\\\\\\\\\\\\": \\\\\\\\\\\\\\\"404 - Not Found\\\\\\\\\\\\\\\",\\\\\\\\u000a \\\\\\\\\\\\\\\"content\\\\\\\\\\\\\\\": templates.render('404.html', req, {})\\\\\\\\u000a };\\\\\\\\u000a};\\\\\\\",\\\\\\\"types\\\\\\\":\\\\\\\"/*\\\\\\\\u000a * \\\\\\\\u000a */\\\\\\\",\\\\\\\"updates\\\\\\\":\\\\\\\"/\\\\\\\\u000a * \\\\\\\\u000a */\\\\\\\",\\\\\\\"validate\\\\\\\":\\\\\\\"//-----------------------------------------------------------------------------\\\\\\\\u000a// Init\\\\\\\\u000a//----------------------------------------------------------------------------\\\\\\\\u000avar types = require('kanso/types'),\\\\\\\\u000a app_types = require('./types');\\\\\\\\u000a\\\\\\\\u000a//----------------------------------------------------------------------------\\\\\\\\u000a// Validate\\\\\\\\u000a//----------------------------------------------------------------------------\\\\\\\\u000a/*\\\\\\\\u000aValidates document to be created/updated.\\\\\\\\u000a\\\\\\\\u000aValidation\\\\\\\\u000a--------\\\\\\\\u000a One per design document\\\\\\\\u000a- If multiple validation functions exist for a database, all of them will be run. If one throws error the create/update is blocked.\\\\\\\\u000a\\\\\\\\u000aFunctions used inside the validate function\\\\\\\\u000a------------------------------------------\\\\\\\\u000a throw(

      {unauthorized: message}

      ) // Throws an unauthorized error and blocks the update.\\\\\\\\u000a- throw(

      {forbidden: message}

      ) // Throws a forbidden error and blocks the update.\\\\\\\\u000a\\\\\\\\u000a\\\\\\\\u000a@param

      {Object} newDoc Document from the client.\\\\\\\\u000a@param {Object}

      oldDoc Existing document in the database.\\\\\\\\u000a@param

      {Object}

      userCtx User information.\\\\\\\\u000a**/\\\\\\\\u000amodule.exports = function(newDoc, oldDoc, userCtx)

      {\\\\\\\\u000a types.validate_doc_update(app_types, newDoc, oldDoc, userCtx);\\\\\\\\u000a}

      ;\\\\\\\"}\\\"]\"]"}

      When I add a comment in it the error disappears.

      Attachments

        Activity

          People

            Unassigned Unassigned
            johnnywengluu Johnny Weng Luu
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: