Sails.js,API执行时没有路由配置和controller.method

时间:2016-04-05 15:24:08

标签: javascript ruby-on-rails node.js sails.js

嘿,伙计们,我在Sails.js中有一个特殊的情况

  • 我使用cmd-line中的sails generate api sponsor创建了名为“赞助商”的新模型和控制器
  • 然后我创建了路线 post /create/new/sponsor' : 'SponsorController.create,在控制器内创建了一个方法“创建”并构建了相应的模型。
  • 现在,当我使用合法配置在邮递员中尝试时,一切都运行正常,因为它应该起作用。新赞助商正在创建!!
      

    问题是:

         
        
    • 即使Iam传递网址localhost:port/sponsor,也会创建新的赞助商(因为没有定义此类路线,因此应该抛出状态:404 )。
    •   
    • 然后我删除了控制器方法“创建”并尝试使用网址localhost:port/sponsor,奇怪的是它仍然有用!!!!
    •   
    • 我得到的唯一错误是在cmd-prompt中说“ publishCreate()的使用无效::值必须有'id'而不是...... (正文传递)”
    •   

我使用之前创建的其他API进行了检查,根据定义的路由,一切正常。如果[url不匹配route == status:404]

我想知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

默认情况下,Sails.js默认启用blueprints。这会在网址GET, PUT, POST, Delete

自动为您的控制器创建localhost:port/sponsor路由

Concepts& Reference了解更多信息。

可以在sails.js config/blueprints.js中关闭蓝图,取消注释actions并将其值设置为false

actions: false,

指数" 休息:" config/blueprints.js需要取消注释并设置为false以禁用自生成的路由,即localhost:port/sponsor

rest: false,

谢谢 @Callum

指出解决方案

  

重要的是要认识到,即使你自己也没有定义过这些,只要。存在与控制器同名的模型,Sails将使用内置CRUD进行响应。 JSON API形式的逻辑,包括对排序,分页和过滤的支持。

Best Callum