我正在閱讀有關ExpressJS的介紹手冊,不幸的是他們使用Express 3.x.我試圖讓他們的代碼示例更新爲Express 4.x.下面是其實例:無法使用ExpressJS路由器映射路由文件
路由/ index.js
exports.index = function(req, res){
res.send('welcome');
};
app.js
var express = require('express');
var http = require('http');
var app = express();
// Load the route handlers
var routes = require('./routes');
// Add router middleware explicitly
app.use(app.router);
// Routes
app.get('/', routes.index);
http.createServer(app).listen(3000, function(){
console.log('App started');
});
這裏,app.router
被棄用,節點引發錯誤了。我已經更新了代碼:
var http = require('http');
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var router = express.Router();
var routes = require('./routes');
router.get('/', routes.index);
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
http.createServer(app).listen(3000, function() {
console.log('Express app started');
});
然而,當訪問localhost:3000
,我得到這個錯誤在瀏覽器中顯示:
Cannot GET/
如果我完全刪除Router類的使用(和刪除app.use(app.router)
)我可以這樣做:
app.get('/', routes.index);
,這將正常工作。
如何使用Router類加載我的外部路由?