javascript - SailsJs 中的动态路由

标签 javascript api routes sails.js

我想创建一条动态路线。 我创建了一个名为用户的 API。我需要可以访问/users/:nameofuser,就像自动创建的用户/id。

如何在这种类型的 url 中获取用户名,并执行 Controller 以在数据库中搜索它?

我尝试在 routes.js 中使用这段代码,但它对我不起作用:

'users/:name': 'UserController.getUser',

'users/all/:name': 'UserController.getUser'

我总是收到带有此文本的 404 错误:找不到具有指定 id 的记录。

最佳答案

users/:id 自动路由到 UserController.find。如果您的 Controller 中不存在此操作,它将使用默认的蓝图操作,这需要一个 ID 参数。要解决您的问题,您可以简单地覆盖 find 方法:

find: function (req, res) {
    var name = req.param('id');
    User.findOne({name: name}).exec(function(err, user) {
        if (err) {return res.serverError(err);}
        return res.json(user);
    });
}

但是,如果您仍然想通过 ID 获取用户,您应该创建一个额外的路由:

'users/:name': 'UserController.getUser',

getUser: function (req, res) {
    var name = req.param('name');
    User.findOne({name: name}).exec(function(err, user) {
        if (err) {return res.serverError(err);}
        return res.json(user);
    });
}

关于javascript - SailsJs 中的动态路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39593448/

相关文章:

api - 我在哪里可以找到 GitLab API 的旧文档?

ruby - 具有可选查询参数的 Sinatra

javascript - 如何在数据表jquery中添加除操作列之外的列过滤

javascript - 在 ReactJS 中使用搜索框时如何显示来自 API 的信息?

api - 用于 future 30 天数据预测的天气 API

javascript - 无法使 React-Router 渲染两个不同的组件,始终渲染 root

split - 从主应用程序文件中分离 Angular 2 路由配置

javascript - Event.ClientX 在 firefox 和 chrome 中不工作

javascript - Socket.io - 发出 JS 对象导致最大递归错误,然后根本不发送

Javascript 在点击时添加类