2015-10-02 10 views
5

Ich stecke für ein paar Stunden auf ein Problem, kann es aber nicht herausfinden. Ich habe eine einfache Anwendung schreibt in Knoten js:Knoten JS Require throw AssertionError: fehlender Pfad

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'); 
    }) 
}) 

Alle Arbeiten außer wenn ich die users.js Datei benötigen. Wenn ich es nicht erfordern, habe ich kein Problem, aber wenn ich es tun bekam ich diese Fehlermeldung:

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) 

Wenn jemand mir dabei helfen kann, wäre es wunderbar !! Hier

ist der Code von users.js wenn es helfen kann:

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; 
+0

Ich bin mir fast sicher, dass du das nicht willst: 'var mongo = require ('') = ('./../helpers/mongo_utils.js');' –

Antwort

2

die stacktrace lesen:

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

Das ist falsch:

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

nicht sicher, was Sie versuchen zu erreichen, sollte aber wohl dies stattdessen sein:

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

Vielen Dank, ich glaube, ich habe Verwirrt, wo immer nur der richtige Ort ist. Dieser dumme Fehler! Tahnk Sie, haben Sie eine schöne Nacht (oder Tag) – JimZer

0

Der Fehler wird verursacht, indem require irgendein unwahrscheinlicher Wert übergeben wird.

var sinon = require(sinon); 

, was ich wirklich gemeint ...

var sinon = require('sinon'); 
8

Sie vergessen, Anführungszeichen um String auszudrücken. Versuchen Sie, diese Linie zu ändern:

var express = require(express); 

für die folgenden:

var express = require('express'); 

und sehen, ob es das Problem behoben.