我创建了一个新的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/

10-09 23:57