我正在阅读MEAN MACHINE Book,并遵循其下的指示 路由节点应用程序[第36页]
express.Router()⁴⁸充当迷你应用程序。你可以调用它的一个实例(就像我们为Express做的那样) 然后在其上定义路由。让我们看一个例子,这样我们就知道这意味着什么。加 这个到你的'server.js'文件,如果你想跟随。 在server.js内的app.get()路由下,添加以下内容。我们将1.调用一个实例 路由器2.将路由应用到它3.然后将这些路由添加到我们的主应用程序
因此我复制粘贴代码[请参阅下文] http://localhost:1337/admin 页面抛出一个错误,上面写着“Cannnot GET / admin”
代码:
// load the express package and create our app
var express = require('express');
var app = express();
var path = require('path');
// send our index.html file to the user for the home page
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
// create routes for the admin section
// get an instance of the router
var adminRouter = express.Router();
// route middleware that will happen on every request
// admin main page. the dashboard (http://localhost:1337/admin)
adminRouter.get('/', function(req, res) {
res.send('I am the dashboard!');
});
// users page (http://localhost:1337/admin/users)
adminRouter.get('/users', function(req, res) {
res.send('I show all the users!');
});
// posts page (http://localhost:1337/admin/posts)
adminRouter.get('/posts', function(req, res) {
res.send('I show all the posts!');
// apply the routes to our application
app.use('/admin', adminRouter);
});
// start the server
app.listen(1337);
console.log('1337 is the magic port!');
答案 0 :(得分:1)
第app.use('/admin', adminRouter);
行将adminRouter添加到主应用程序。
你有内部在该路由器上调用/posts
的函数。
因此,永远不会被召唤。
您需要将其向下移动,使其显示在});
和// start the server
答案 1 :(得分:0)
adminRouter.get('/posts', function(req, res) {
res.send('I show all the posts!');
// apply the routes to our application
app.use('/admin', adminRouter);
});
在中间件之外使用app.use。
adminRouter.get('/posts', function(req, res) {
res.send('I show all the posts!');
})
// apply the routes to our application
app.use('/admin', adminRouter);