平均值-router.get方法未触发

时间:2018-10-28 04:24:45

标签: angular express mongoose mean

我的要求非常简单。如果配置尚未完成,我正在尝试加载可配置的angular component。我一直在尝试向服务器发送get请求,以找出一条已经存在的记录-如果存在,它将重定向到其他angular component或保留在当前angular component中进行配置。

我通过以下方式为路由器配置了express应用-

const admin_routes = require('./server/routes/admin');
const configure_routes = require('./server/routes/configure');

app.use(mongooseExpressErrorHandler);

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

app.use(express.static(path.join(__dirname, 'dist/product-bot')));
app.use(express.static(__dirname + '/server/images'));

app.use('/admin', admin_routes);
app.use('/configure', configure_routes);

app.get('*', (req, res) => {
    res.sendFile(path.join(__dirname, 'dist/products/index.html'));
});

app.post('*', (req, res) => {
    res.sendFile(path.join(__dirname, 'dist/products/index.html'));
});

这是路由器-

const express       = require('express');;
const configureController = require('../controller/configure/configure');
const router        = express.Router();

router.get('/configure', configureController.check_super_admin_exists);

这是我的控制器代码-

exports.check_super_admin_exists = function(req, res, next) {
  let find_super_admin_promise = userModel.find_user_by_role();

  find_super_admin_promise.then(function(result) {

    if (typeof result === 'undefined' || result === null) {
      res.redirect('/login');
    } else {
      next();
    }
  }).catch(function(error) {
    console.log(error);
    res.status(500);
    res.json('error');
  });
}

userModel.find_user_by_role()工作正常,因为我已经在其他功能中使用了模型代码。

但是问题是-我看到路由器代码(router.get('/configure', configureController.check_super_admin_exists))从未执行过。我在同一项目中一直使用router.post()方法,效果很好。

请帮助我找出我的代码有什么问题。

谢谢。

1 个答案:

答案 0 :(得分:2)

就我的观察而言,我认为这是因为您在快速应用程序中初始化了路由。

示例:

在您 index.js / server.js 上,您已指定以下行:

app.use('/configure', configure_routes);

但是随后在设置您的/ configure子路由的其他文件上,您指定了一条路由,其名称应与您的父(app.use('/配置”,configure_routes))

router.get('/configure', configureController.check_super_admin_exists);

这样,您可以通过以下方式访问配置路由:

/configure/configure       

or

http://localhost:3000/configure/configure     // if you're running at port 3000

要以/configurehttp://localhost:3000/configure的身份对其进行访问,您需要将其他文件上的路由配置修改为'/'

router.get('/', configureController.check_super_admin_exists);

// This way, it will follow the parent's name setup from index / server.js
// app.use('/configure', configure_routes);

  

快速示例路由结构:

STRUCTURE           ROUTES                             API URL

/user        app.use('/user', userRoutes)            
   /         router.get('/', getUser);               GET     /user
   /         router.post('/', saveUser);             POST    /user
   /:id      router.put('/:id', updateUser);         PUT     /user/:id
   /:id      router.delete('/:id', deleteUser);      DELETE  /user/:id