2017-08-25 22 views
0

我決定將我的路線從我的app.js中取出並放到他們自己的單獨文件夾中,但是現在該站點將爲索引加載句柄文件,但不是用於about或contacts - 我很困惑並需要幫助以換取+1。在node.js中使用express來路由文件夾

// Import the express module 
var express = require('express'); 
var path = require("path"); 
var bodyParser = require("body-parser"); 

var index = require('./routes/index'); 
var about = require('./routes/about'); 
var contact = require('./routes/contact'); 

var handlebars = require('express-handlebars').create({defaultLayout:'main'}); 

var app = express(); 

// Block the header from containing information 
// about the server 
app.disable('x-powered-by'); 


app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'handlebars'); 
app.engine('handlebars', handlebars.engine); 

//set static folder 
app.use(express.static(__dirname + '/public'));//allows access to public directory 

//set bower folder 
app.use('/bower_components', express.static(__dirname + '/bower_components'));//defines bower components directory 

//body parser MW 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: false})); 

app.set('port', process.env.PORT || 1337);// Defines the port to run on 


app.use("/", index); 
app.use("/about", about); 
app.use("/contact", contact); 


app.use(function(req, res){ 
    res.type('text/html'); 
    res.status(404); 
    res.render('404'); 
}); 

app.use(function(err, req, res, next){ 
    console.error(err.stack); 
    res.status(500); 
    res.render('500'); 
}); 


app.listen(app.get('port'), function(){ 
    console.log("Express started on http://127.0.0.1:" + app.get('port') + ' Press Ctrl+C to terminate'); 
    }) 

這是路由/ index.js文件:

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

    // Defines the base url 
    router.get('/', function(req, res, next){ 
     // Point at the home.handlebars view 
     res.render('home'); 
    }); 

    module.exports = router; 

和路線/ about.js

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

    router.get('/about', function(req, res, next){ 
     res.render('about'); 
    }); 

    module.exports = router; 

當我去本地主機/接觸,我讓我的404頁和/約相同。

視圖位於應用程序/視圖中,當我將它們放在app.js的管道中時它就起作用,但是由於刪除它們,它已損壞。我們歡迎所有的建議!

回答

1

此問題與路由本身有關。假設我們正在尋找/大約有:然後

app.use("/about", about); 

該應用程序將考慮關於路由文件夾,找到下面。

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

router.get('/about', function(req, res, next){ 
    res.render('about'); 
}); 

module.exports = router; 

而且因爲我有另一個/關於這裏的router.get這會使本地主機/約/約

相關問題