我创建了一个新的Sails应用程序,到目前为止,我已使用sails generate api guitar
创建了一个api,然后在控制器中添加了此代码:
module.exports = {
fender: function(req, res){
console.log(req.params);
res.notFound();
}
};
正如预期的那样,当我转到http://localhost:1337/guitar/fender
时,我得到404 error
(这是我编写的回复)。但是我得到的是,如果我转到http://localhost:1337/guitar/fender/4
,控制台会显示[ id: '4' ]
。我似乎在那里有一个GET /guitar/fender/:id
(在这里使用Express / Rails语法)类型的URL。但我无法在任何地方看到它,而不是在config/routes.js
或其他任何地方。
那么,Sails.js会自动为每个控制器动作创建一个:id
吗?或者我在这里遗漏了什么?
我尝试了一些操作,例如将其添加到config/routes.js
文件中:
'get /guitar/fender/:brand': 'GuitarController.fender'
然后当我再次转到该网址时,我会打印[ brand: '4' ]
而不是id
。
所以我的最后一个问题是:Sails.js会自动为每个控制器操作设置:id
吗?
(我无法在文档中找到这个)
答案 0 :(得分:1)
为加速REST开发,Sails使用名为 Blueprint 的内部API。
当您运行“生成”命令时,Sails会为您创建所有CRUD操作来处理您的实体,因此您可以立即测试您的API而无需任何代码。
在这里你创建了一个吉他实体。现在,您可以直接在Web浏览器中使用它!我们在localhost上试试这个:
/guitar/create?name=Ibanez
/guitar
/guitar/4
/guitar/update/4?name=Stratocaster
/guitar/4
/guitar/destroy/4
/guitar
如果您想了解有关蓝图的更多信息,可以: