我想知道,有没有一个简单的方法来创建一个全局前缀使用Sails中提供的配置?还是需要引进另一个图书馆?
我在config / controller.js中找到蓝图前缀配置.这似乎应该是一个简单的方法,因为应用程序已经部分支持它了…
我正在尝试在我的应用程序的所有路由前面找到像/ api / v1这样的东西.
谢谢.
解决方法
因此,当前缀设置为/ api / v1和route / some时,可以通过uri / api / v1 / some访问.
但是如果你声明这样的路由:“post / someEndPoint”:{controller:“someController”,action:“someAction”},前缀什么都不做.
在这种情况下,您必须手动写入它们:post / api / v1 / someEndPoint,并将config / controller.js中的actions属性(至少在生产中)设置为false,以便为控制器中的每个操作关闭自动生成的路由.
@EDIT 08.08.2014
以上适用于小于v0.10的Sails.Js版本.因为我不再用Sails工作,我不知道现在适用于当前版本的框架.
@EDIT 14.08.2014
对于sails.js> = 0.10版本,可以设置前缀的配置文件为config / blueprints.js.它具有与旧版本相同的功能.
@Edit 07.09.2015
据我所知,该框架不支持手动定义路由的全局前缀,但是由于您仍然可以在配置文件中使用javascript(由于配置文件是nodeJs模块而不是JSON文件),因此您可以轻松地调整此功能按需要工作.
假设在蓝图配置文件中将prefix属性设置为/ api,则可以在路由中使用此代码.
var blueprintConfig = require('./blueprints'); var ROUTE_PREFIX = blueprintConfig.blueprints.prefix || ""; // add global prefix to manually defined routes function addGlobalPrefix(routes) { var paths = Object.keys(routes),newRoutes = {}; if(ROUTE_PREFIX === "") { return routes; } paths.forEach(function(path) { var pathParts = path.split(" "),uri = pathParts.pop(),prefixedURI = "",newPath = ""; prefixedURI = ROUTE_PREFIX + uri; pathParts.push(prefixedURI); newPath = pathParts.join(" "); // construct the new routes newRoutes[newPath] = routes[path]; }); return newRoutes; }; module.exports.routes = addGlobalPrefix({ /*************************************************************************** * * * Make the view located at `views/homepage.ejs` (or `views/homepage.jade`,* * etc. depending on your default view engine) your home page. * * * * (Alternatively,remove this and add an `index.html` file in your * * `assets` directory) * * * ***************************************************************************/ // '/': { // view: 'homepage' // },/*************************************************************************** * * * Custom routes here... * * * * If a request to a URL doesn't match any of the custom routes above,it * * is matched against Sails route blueprints. See `config/blueprints.js` * * for configuration options and examples. * * * ***************************************************************************/ 'post /fake': 'FakeController.create',});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。