【问题标题】:Dynamic routes in SailsJsSailsJs 中的动态路由
【发布时间】:2016-09-20 11:57:04
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

标签: javascript api routes sails.js


【解决方案1】:

users/:id 自动路由到UserController.find。如果您的控制器中不存在此操作,则它使用默认蓝图操作,这需要一个 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);
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2014-12-31
    • 2014-09-16
    • 2020-02-29
    • 2011-08-07
    相关资源
    最近更新 更多