为什么我的Sails.js应用程序有一个我从未添加的路由

时间:2017-04-13 00:09:09

标签: javascript node.js sails.js

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

(我无法在文档中找到这个)

1 个答案:

答案 0 :(得分:1)

为加速REST开发,Sails使用名为 Blueprint 的内部API。

当您运行“生成”命令时,Sails会为您创建所有CRUD操作来处理您的实体,因此您可以立即测试您的API而无需任何代码。

在这里你创建了一个吉他实体。现在,您可以直接在Web浏览器中使用它!我们在localhost上试试这个:

  1. /guitar/create?name=Ibanez
  2. /guitar
  3. /guitar/4
  4. /guitar/update/4?name=Stratocaster
  5. /guitar/4
  6. /guitar/destroy/4
  7. /guitar
  8. 如果您想了解有关蓝图的更多信息,可以:

    • 从Sails文档中读取this section
    • 查看Sails项目中的 config / blueprints.js 文件