【发布时间】: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