【问题标题】:Sails.JS how to get a HTTP GET method in the controller to work properly with URL parametersSails.JS 如何在控制器中获取 HTTP GET 方法以使用 URL 参数正常工作
【发布时间】:2018-05-02 21:28:07
【问题描述】:

我在 Sails.JS 中有一个控制器,它需要采用如下 URL 参数:localhost:1337/api/test/[value1]/[value2]

我怎样才能告诉控制器这样做呢?我已经尝试包含一个 :value!或类似 localhost:1337/api/test/:value1 的建议 https://sailsjs.com/documentation/reference/request-req/req-params 但控制器无法识别使用 req.param("value1") 对 localhost:1337/api/test/MyValue 的查询。

这里有什么建议吗?

routes.js 文件包含以下内容:

'get api/test/:value1': 'TestController.test',

控制器方法如下所示:

test: function(req, res) {
        sails.log("req.params = " + JSON.stringify(req.params.all()));
        if (req.method == "GET"){
            var value1 = req.param("value1");
            Test.findOne({"value1": value1).exec(function (err, value1){
                if(err) {
                    sails.log(err);
                    return res.serverError(err);
                }
                if(!value1){
                    //Some error
                }
                return res.ok(value1);
            });
        } else {
            var wrongHttpMethod = req.__('Wrong HTTP method');
            return res.notFound(wrongHttpMethod);
        }
    }

所以基本问题是:如何让 HTTP GET 方法使用 URL(或查询)参数运行?

【问题讨论】:

  • 好的,现在它完全按预期工作了......不知道我改变了什么;(

标签: javascript node.js sails.js


【解决方案1】:

自行解决。没有发现错误,但它有效。

【讨论】:

    猜你喜欢
    • 2020-07-25
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多