Node JS Require throw AssertionError: missing path

30,002

Solution 1

Read the stacktrace:

at Object.<anonymous> (/home/jimzer--jimzer/www/NodeJsForum/models/users.js:1:79)

This is wrong:

var mongo     = require('') = ('./../helpers/mongo_utils.js');

Not sure what you are trying to achieve, but should probably be this instead:

var mongo     =  ('./../helpers/mongo_utils.js');

Solution 2

You forget quotes around express string. Try to change this line:

var express = require(express); 

for the following one:

var express = require('express');

and see if it fixed the problem.

Share:
30,002
JimZer
Author by

JimZer

Updated on July 09, 2022

Comments

  • JimZer
    JimZer almost 2 years

    I have a simple application written in node.js:

    var mongo   = require('./helpers/mongo_utils.js');
    var express = require('express');
    var user = require('./models/users.js');
    
    mongo.connect(function (err)
    {
      if (err) throw err;
      console.log('connected');
    
      var app = express();
      app.listen(3000, function ()
        {
          console.log('Server set up and start listening on port 3000');
        })
    })
    

    All works except when I require the users.js file. If I don't require it I have no problem, but when I do it I get this error:

    assert.js:89
      throw new assert.AssertionError({
      ^
    AssertionError: missing path
        at Module.require (module.js:363:3)
        at require (module.js:384:17)
        at Object.<anonymous> (/home/jimzer--jimzer/www/NodeJsForum/models/users.js:1:79)
        at Module._compile (module.js:434:26)
        at Object.Module._extensions..js (module.js:452:10)
        at Module.load (module.js:355:32)
        at Function.Module._load (module.js:310:12)
        at Module.require (module.js:365:17)
        at require (module.js:384:17)
        at Object.<anonymous> (/home/jimzer--jimzer/www/NodeJsForum/app.js:3:12)
    

    Here is the code of users.js if it can help:

    var mongo     = require('') = ('./../helpers/mongo_utils.js');
    var mailValid = require('./../helpers/email_valid.js');
    
    var db = mongo.getDb();
    
    var User = function (pseudo, psw, mail, level, callback)
    {
      // Params checking
      if (!(pseudo && psw && mail && (level != 'undefined')))
      {
        err = new Error("All fields aren't specified"); err.code = 0;
        return callback(err);
      }
      // Mail validation
      if (!mailValid(mail))
      {
        err = new Error("Mail adress isn't valid"); err.code = 1;
        return callback(err);
      }
      db.users.findOne({mail: mail}, function (err, doc)
      {
        if (err) throw err;
        if (doc)
        {
          err = new Error("Mail adress already used");
          err.code = 1;
          return callback(err);
        }
      });
    
      // Pseudo
      if (!(pseudo.length > 0 && pseudo.length < 20))
      {
        err = new Error("Pseudo length invalid");
        err.code = 2;
        return callback(err);
      }
      db.getDb.users.findOne({_id: pseudo}, function (err, doc)
      {
        if (err) throw err;
        if (doc)
        {
          err = new Error("pseudo déja utilisé"); err.code = 2;
          return callback(err);
        }
      });
    
      // Psw validation
      if (!(psw instanceof String))
      {
        err = new Error("Password invalid"); err.code = 3;
        return callback(err);
      }
    
      // Level validation
      if (!(lvl > 0 && lvl < 10))
      {
        err = new Error("Access level invalid"); err.code = 4;
        return callback(err);
      }
    
      // If all test are OK, we construct and instance of User and pass it to the callback
      else
      {
        this.pseudo = pseudo;
        this.psw = psw;
        this.mail = mail;
        this.date = Date.now();
        this.lvl = lvl;
        return callback(null, this);
      }
    }
    
    module.exports = User;