如何在 SailsJS 中拆分 router.js
How can I split router.js in SailsJS
我的项目越来越大,router.js 也在增长。是否可以将它拆分成几个不同的路由文件?每个路由文件适用于不同的控制器。
在 sails 中,只要导出 module.exports.routes
,就可以将路线放入 config/
中的任何文件中。所以你可以这样做:
1。 config/routes.js
module.exports.routes = { };
2。 config/routes/otherRoute.js
_.defaults(sails.config.routes, {
// other routes
});
您可以在 config/routes.js 中引入您的另一个路由文件,并使用 lodash (https://lodash.com/docs#merge)
将其与 main 合并
var otherRoutes = require('/path/to/otherRoutes');
var routes = {
'initialRoutes' : 'here'
}
_.merge(routes, otherRoutes);
module.exports = routes;
我已将我的自定义路线包含在我的 API 文件夹中。我创建了一个文件夹 api/routes/ 并包含我的自定义路由,例如:
1。 config/routes.js
var routes = require('../api/routes/Route');
var contact = require('../api/routes/ContactRoute');
var all = routes.custom;
var contactsRoutes = contact.contactRoutes;
// Dynamic include custom routes from api
var routes = function (dic) {
var obj = {};
dic.forEach(function (routes) {
for (p in routes) {
obj[p] = routes[p];
}
})
return obj;
}
module.exports.routes = routes([all, contactsRoutes]);
2。 api/routes/ContactRoute.js
module.exports.contactRoutes = {'get /v1/contact': 'ContactController.index'}
我来自点网背景,那里的属性路由允许用户在控制器本身中指定显式路由。这是一个非常有用的功能,因为当您与一个团队一起工作时,您不能拥有一个不断增长的大文件,因为它会增加在 GIT.
上维护代码时的冲突。
所以我想在我的 sails 应用程序中使用类似的解决方案
我是这样做的
var _ = require('lodash');
var routes = {
'get /test':'SiteController.testme'
};
_.assignIn(sails.config.routes,routes);
module.exports = {
testme : function(req,res){
res.json("I have been tested");
},
findOne: function(req,res){
res.json("I have got one site");
}
};
这里的控制器名称是SiteController
我的项目越来越大,router.js 也在增长。是否可以将它拆分成几个不同的路由文件?每个路由文件适用于不同的控制器。
在 sails 中,只要导出 module.exports.routes
,就可以将路线放入 config/
中的任何文件中。所以你可以这样做:
1。 config/routes.js
module.exports.routes = { };
2。 config/routes/otherRoute.js
_.defaults(sails.config.routes, {
// other routes
});
您可以在 config/routes.js 中引入您的另一个路由文件,并使用 lodash (https://lodash.com/docs#merge)
将其与 main 合并var otherRoutes = require('/path/to/otherRoutes');
var routes = {
'initialRoutes' : 'here'
}
_.merge(routes, otherRoutes);
module.exports = routes;
我已将我的自定义路线包含在我的 API 文件夹中。我创建了一个文件夹 api/routes/ 并包含我的自定义路由,例如:
1。 config/routes.js
var routes = require('../api/routes/Route');
var contact = require('../api/routes/ContactRoute');
var all = routes.custom;
var contactsRoutes = contact.contactRoutes;
// Dynamic include custom routes from api
var routes = function (dic) {
var obj = {};
dic.forEach(function (routes) {
for (p in routes) {
obj[p] = routes[p];
}
})
return obj;
}
module.exports.routes = routes([all, contactsRoutes]);
2。 api/routes/ContactRoute.js
module.exports.contactRoutes = {'get /v1/contact': 'ContactController.index'}
我来自点网背景,那里的属性路由允许用户在控制器本身中指定显式路由。这是一个非常有用的功能,因为当您与一个团队一起工作时,您不能拥有一个不断增长的大文件,因为它会增加在 GIT.
上维护代码时的冲突。所以我想在我的 sails 应用程序中使用类似的解决方案
我是这样做的
var _ = require('lodash');
var routes = {
'get /test':'SiteController.testme'
};
_.assignIn(sails.config.routes,routes);
module.exports = {
testme : function(req,res){
res.json("I have been tested");
},
findOne: function(req,res){
res.json("I have got one site");
}
};
这里的控制器名称是SiteController