嘿,伙计们,我在Sails.js中有一个特殊的情况
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]
我想知道为什么会这样?
答案 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