我正在阅读有关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类加载我的外部路由?