Sails使用“。”在get参数上给出404。

时间:2014-09-06 20:14:47

标签: node.js sails.js

我有SPA帆应用程序。我的SPA应用程序的所有路线,首先进入欢迎动作控制器。

'/*' :{
    controller : 'Web/welcomeController',
    skipAssets : true
}

所有其他路线使用类似api,用于ajax请求。这条路线' / *'仅用于第一个渲染页面。所有其他渲染提供angularjs。在那里,其中一条路线有点参数。

http://localhost:1337/search?lat=40.714545&long=-74.007112

我得到404错误。所有这一切都是由参数skipAsset引起的,它忽略了带有内容点的url。

我需要控制器也跳过资源资源,如image,js等。但是正确处理带有内容点/?lat=40.714545&long=-74.007112

的get参数的请求

1 个答案:

答案 0 :(得分:2)

应该修复

skipAssets以忽略查询字符串。但与此同时,您可以使用skipRegex代替skipAssets。来自Sails.js docs on custom routes

  

如果跳过包含点的每个网址过于宽松,或者您需要   一个完全基于不同标准跳过的路由处理程序,   你可以使用skipRegex。此选项允许您指定常规   表达式或正则表达式数组以匹配请求URL   反对;如果任何匹配成功,则跳过处理程序。   请注意,与使用常规处理程序绑定处理程序的语法不同   表达式,skipRegex需要实际的RegExp对象,而不是字符串。

类似于:

'/*' :{
    controller : 'Web/welcomeController',
    skipRegex : /^[^?]+\./
}

可能就足够了。