我有一个管理控制器controllers/admin.js
,如下所示:
"use strict";
var AdminModel = require('../models/admin');
module.exports = function (router) {
var model = new AdminModel();
router.get('/admin', function (req, res) {
res.send("Admin");
});
};
如果我启动该应用,获取http://localhost:8000/admin的网址会向我Cannot GET /admin
。但是,获取/ admin / admin会给我Admin
。
我的问题是如何摆脱URL路径中的控制器文件名?
答案 0 :(得分:1)
第一个选项是从admin.js控制器中的router.get删除admin
router.get('/admin', function (req, res) {
在配置控制器中进行第二次检查配置
config.json
"router": {
"module": {
"arguments": [{ "directory": "path:./controllers" }]
}
}
编辑:
第三个选项在controllers文件夹中创建一个文件夹admin从controller文件夹中复制index.js文件结果结束URL" / admin" (不要忘记更改需要的位置)和管理文件夹中的任何其他文件,如" log.js" (路径:" controllers / admin / log.js")创建结束URL" / admin / log"通过这种方法你可以将所有管理代码保存在不同的文件夹中,这种方法有助于管理大型项目,有时候很多文件夹也会造成混乱;)
admin / index.js或log.js中的router.get
router.get('/', function (req, res) {
在我的两个项目中使用第三种方法来更多地研究控制器目录配置:https://github.com/krakenjs/express-enrouten