Javascript 如何在Sails JS中创建自定义路线

Javascript 如何在Sails JS中创建自定义路线,javascript,sails.js,Javascript,Sails.js,如果我在config/routes.js中添加以下内容,我将尝试在Sails中创建一条自定义路线,并根据其文档: 'post /api/signin': 'AuthController.index', 请求将由AuthController中的index操作处理,但这似乎根本不起作用。当我在Postman中尝试/api/login时,我什么也没有得到 请注意,我在我的config/blueprints.js中添加了restPrefix:'/api'。请注意,我使用的是Sails 0.12.x 这

如果我在
config/routes.js
中添加以下内容,我将尝试在Sails中创建一条自定义路线,并根据其文档:

'post /api/signin': 'AuthController.index',
请求将由
AuthController
中的
index
操作处理,但这似乎根本不起作用。当我在Postman中尝试
/api/login
时,我什么也没有得到

请注意,我在我的
config/blueprints.js
中添加了
restPrefix:'/api'
。请注意,我使用的是Sails 0.12.x


这里我遗漏了什么?

因为您指向的是一个带有方法索引的控制器,所以需要将其添加到控制器中,并从那里发送JSON响应(因为您使用的是post)。下面是一个简单的例子

config/routes.js api/controllers/AuthController.js 更新 因为你已经有了上面的问题,这可能是由你的蓝图造成的

快捷路线蓝图 默认情况下,快捷路线在新的Sails应用程序中激活,并且可以 通过将
sails.config.blueprints.shortcuts
设置为
false
通常在/config/blueprints.js中

Sails为任何控制器/模型对使用 相同的身份。请注意,相同的操作将针对类似对象执行 RESTful/快捷路线。例如,
POST/user
GET
/用户/创建
帆船装载时创建的路线
api/controllers/UserController.js和
api/models/User.js
将 通过运行相同的代码进行响应(即使您重写了蓝图 (行动)

根据sails blueprint文档中的说明,可能会关闭快捷方式,并删除添加的前缀

  • 可能快捷方式正在查找控制器以外的其他位置,因此返回404

  • 前缀正在添加到blueprint连接的路由中,因此您需要
    /api/api/sign
    才能访问它

  • 注 我无法在我的计算机上复制您的问题,因为它在这里工作正常。但我已经关闭了所有的蓝图设置

    module.exports.blueprints = {
      actions: false,
      rest: false,
      shortcuts: false,
      // prefix: '',
      pluralize: false,
      populate: false,
      autoWatch: false,
    };
    

    是的,这就是我所拥有的,但那根本不起作用。我在索引操作中添加了
    console.log(req.param())
    ,但它似乎根本没有调用控制器。我得到的是一个404,我试过禁用前缀,还有
    /api/api/signin
    ,但也没用。。。非常weird@WagnerMatosUK尝试创建一个新的sails项目,并在没有模型蓝图的情况下测试路由。它应该会起作用,然后看看区别。可能是我们都不知道的,因为它在这里使用我提供的代码。告诉我发生了什么这是最奇怪的事。。。我已经这么做了,但仍然不起作用。。。我想知道这是否是版本问题。将尝试另一个版本我创建了一个全新的项目,保持原样(即:配置没有更改),创建了一个
    用户
    模型和控制器,添加了路线,我得到的只是一个404。怎么了?
    module.exports = {
        index: function(req, res) {
            var id = req.param('id');
            if(!id) {
              return res.json(400, { error: 'invalid company name or token'});
            }
            /* validate login..*/
            res.json(200, {data: "success"};
        }
    }
    
    module.exports.blueprints = {
      actions: false,
      rest: false,
      shortcuts: false,
      // prefix: '',
      pluralize: false,
      populate: false,
      autoWatch: false,
    };