2016-08-05 71 views
-1

Ich arbeite an einem Projekt für meine Sommer-Training und ich wurde gebeten, eine Login-Seite mit Node.js jedoch nach der Installation express-validator erstellen und eingegeben die Codes, die ich in der Datei app.js es ausdrucken möchte ein Fehler jedes Mal, wenn ich die app.js oder die www in der bin-Datei laufen lasse und mir sagt "validator ist keine Funktion".app.use (validator());^TypeError: Validator ist keine Funktion

Und am wichtigsten, verwende ich WebStorm als meine IDE unter Windows.

Dies ist der Fehler, der ausgegeben wird;

app.use(validator()); 
     ^
TypeError: validator is not a function 

Hier ist der Code aus der app.js Datei;

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var validator = require('validator'); 
var session = require('session'); 


var routes = require('./routes/index'); 
var users = require('./routes/users'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(validator()); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 
app.use(session({secret:'max', saveUninitialize: false, resave: false})); 

app.use('/', routes); 
app.use('/users', users); 

// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handlers 

// development error handler 
// will print stacktrace 
if (app.get('env') === 'development') { 
    app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message: err.message, 
     error: err 
    }); 
    }); 
} 

// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message: err.message, 
    error: {} 
    }); 
}); 

module.exports = app; 
+0

Richtig, so ... "Validator" ist keine Funktion. –

Antwort

1

Von was ich sagen kann, verwenden Sie das falsche Modul. Die validator module exportiert ein Objekt mit einer Reihe von Validierungsmethoden. Ihre validator ist nur ein Objekt, nicht etwas, das als Express-Middleware verwendet werden kann.

Vielleicht möchten Sie die Express validator module verwenden, die entwickelt wurde, um als Middleware zu arbeiten?

+0

Also ersetze ich dieses Express-Validierungsmodul in die validator.js oder was? – BlackWolf

+0

@BlackWolf - Lesen Sie das Dokument für das Modul, das ich Ihnen gezeigt habe. Folgen Sie den Anweisungen dort. Es hat keinen Sinn, dieses Dokument zu wiederholen. – jfriend00