为什么不显示“管理员”页面?

时间:2016-08-03 11:34:10

标签: javascript node.js api express meanjs

我正在阅读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!');

2 个答案:

答案 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);