我创建了一个新的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'
然后,当我再次进入URL时,将打印
[ brand: '4' ]
而不是id
。所以我的最后一个问题是:Sails.js是否为每个控制器动作自动创建一个
:id
?(我在文档中也找不到)
最佳答案
为了加快REST开发速度,Sails使用了一个称为Blueprint的内部API。
当您运行“生成”命令时,Sails会为您创建所有CRUD操作来处理您的实体,因此您可以立即测试您的API,而无需任何代码。
在这里,您创建了一个吉他实体。现在,您可以直接在网络浏览器中玩它!让我们在本地主机上尝试一下:/guitar/create?name=Ibanez
/guitar
/guitar/4
/guitar/update/4?name=Stratocaster
/guitar/4
/guitar/destroy/4
/guitar
如果您想了解有关蓝图的更多信息,可以:
阅读Sails文档中的this section
看一下Sails项目中的config / blueprints.js文件
关于javascript - 为什么我的Sails.js应用程序有一条我从未添加的路线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43381547/