我是node.js中的絕對新手,我嘗試通過此技術創建一個新項目。我使用快速框架,但一開始我有點麻煩。我已經解決了這個麻煩解決方法,但我對接下來的行爲問題: 我app.jsapp.get不適用於基本路由
var express = require('express')
, routes = require('./routes/index')
, routes = require('./routes/login');
var app = module.exports = express.createServer();
console.log(app.env);
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.use(function(req, res, next) {
if (req.url == '/') {
res.render('index', { title: 'Express!' })
} else {
next();
}
});
//app.get('/', routes.index);
app.get('/login', routes.login);
app.listen(3000, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});
在塊//路線你可以看到app.use和應用。得到。如果我嘗試使用app.get而不是app.use我得到錯誤「無法獲得/」。我試圖把index.html文件放到我的公共文件夾中。但fot「/」路線我每次得到這個文件,而不是呈現index.js。
app.get('/ login',routes.login); - 工作正常,但「/」路線有問題。我不想讓我的代碼處於這種狀態,請幫我理解這種行爲。
提前致謝。
你重新聲明'routes',只是改變變量名。 – 2014-10-06 09:26:14
謝謝。但如何編寫漂亮的代碼?我有每次重複對:routes = require('./ routes') - > app.get('/',routes.index); ....... routes1 = require('./ routes/login') - > app.get('/ login',routes1.login);等等。? – kimonniez 2014-10-06 09:28:45
您可能會使用許多模塊化模式。例如,您可能將所有單個路線包含在一個通用的'路線'模塊中。 – 2014-10-06 09:37:01