2017-02-11 15 views
0

Ich möchte von Standardanmeldungs ​​Route trennen app.js und route/index.js Dateien, aber ich bin immer error 404 nicht gefunden, während localhost:3000/login Ausführungkann nicht getrennt Route Dateien in Express JS setzen

weiß, dass ich diese Fragen wurde bereits vor und ich habe andere Antworten auf StackOverflow gefolgt, aber nicht bekommen, warum ich Fehler bekomme.

Stack-Überlauf Frage, die ich gefolgt: How to separate routes on Node.js and Express 4?

Warum bekomme ich nicht, warum ich diesen Fehler bin immer.

app.js

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 expressValidator = require('express-validator'); 
var session = require('express-session'); 

var mongodb = require('./mongoDB'); 
var index = require('./routes/index'); 
var users = require('./routes/users'); 
var login = require('./routes/login'); //including login.js 

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(cookieParser()); 
app.use(express.static(path.join(__dirname, '/public'))); 
    app.use(session({ 
    name: 'mysession', 
    secret: 'some_secret', 
    saveUninitialized: false, 
    resave: true, cookie: { 
     secure: true 
    }})); 

app.use('/', index); 
app.use('/users', users); 
app.use('/login', login); 

mongodb.connectDatabase; 

// 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 handler 
app.use(function(err, req, res, next) { 
    // set locals, only providing error in development 
    res.locals.message = err.message; 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 

    // render the error page 
    res.status(err.status || 500); 
    res.render('error'); 
}); 

module.exports = app; 

Route/login.js

var express = require('express'); 
var router = express.Router(); 

router.get('/login', function (req, res) { 
    res.send('exec'); 
}); 

module.exports = router; 

localhost: 3000/login

Not Found 
404 
Error: Not Found 
    at /home/jatin/Drive/OpenSource/sessionManager/app.js:44:13 
    at Layer.handle [as handle_request] (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/layer.js:95:5) 
    at trim_prefix (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:312:13) 
    at /home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:280:7 
    at Function.process_params (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:330:12) 
    at next (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:271:10) 
    at /home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:618:15 
    at next (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:256:14) 
    at Function.handle (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:176:3) 
    at router (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:46:12) 
    at Layer.handle [as handle_request] (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/layer.js:95:5) 
    at trim_prefix (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:312:13) 
    at /home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:280:7 
    at Function.process_params (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:330:12) 
    at next (/home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:271:10) 
    at /home/jatin/Drive/OpenSource/sessionManager/node_modules/express/lib/router/index.js:618:15 

Antwort

1

Es ist ein wenig confus ing, aber wenn Sie verwenden:

app.use('/login', login); 

Sie nisten alle in login unter dem /login Namespace definierten Routen. Sie können sich wahrscheinlich Zugriff zur Zeit die Strecke bei /login/login

ändern login.js zu:

var express = require('express'); 
var router = express.Router(); 

router.get('/', function (req, res) { 
    res.send('exec'); 
}); 

module.exports = router; 

Dann /login/ wird korrekt an die / Route des

+0

Dank @ Rob M. Hilfe login Namensraum geleitet werden –

Verwandte Themen