我的要求非常简单。如果配置尚未完成,我正在尝试加载可配置的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()
方法,效果很好。
请帮助我找出我的代码有什么问题。
谢谢。
答案 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
要以/configure
或http://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