2015-10-02 22 views
5

Birkaç saat boyunca bir problem üzerinde sıkışıp kaldım, ancak bulamıyorum. Ben düğüm js basit bir uygulama yazma ettik: i users.js dosyasını gerektiren durumlar dışındaDüğüm JS Require throw AssertionError: eksik yol

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

tüm eserleri. Ben bunu gerektirir yoksa ben sorunum yok, ama bunu yaparken ben bu hata var: Birisi bana bu konuda yardımcı olabilir

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) 

harika olacağını !! Bu yanlış

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

:

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

Bunu istemediğinizden neredeyse eminim: 'var mongo = require ('') = ('./../ yardımcılar/mongo_utils.js'); –

cevap

2

stacktrace oku: İşte

o yardımcı olabilir users.js ait kodudur

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

emin değil ne elde etmeye çalışıyorlar, ama muhtemelen bunun yerine şu olmalıdır:

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

Çok teşekkür ederim, sanırım var her yerde ama doğru yerde şaşkın. Bu aptalca hata! Tahnk, iyi geceler (veya gün) – JimZer

0

Hata, require herhangi bir asılsız değer geçerek kaynaklanır. Gerçekten ne anlama geldiğini

var sinon = require(sinon); 

...

var sinon = require('sinon'); 
8

Sen etrafında tırnak dize ifade unutur.

var express = require('express'); 

ve problem sabit olmadığını görmek: Aşağıdaki biri için

var express = require(express); 

: Bu satırı değiştirmeye çalışın.