【问题标题】:I cant read params value from req.params in restify (node JS)我无法从 restify(节点 JS)中的 req.params 读取参数值
【发布时间】:2014-02-17 21:31:23
【问题描述】:

我正在尝试从 req.params 中读取参数值,但方式不同(我正在尝试在 RESTIFY 中制作 API)。

首先我阅读了 req.params 中可用的键,例如;

var requestData = Object.keys(request.params);

然后我遍历每个键并尝试获取它的值。下面是代码;

for(i = 1; i < requestData.length; i++) {
             keyValue = requestData[i];
             console.log(request.params.keyValue);
        }

但输出显示我未定义。

原因:我正在尝试以这种方式读取参数,因为我不需要知道每个参数的名称。

下面是完整的代码:

var restify = require('restify');
var assert = require('assert');

var server = restify.createServer();
var client = restify.createStringClient({
    url: 'http://example.com'
});

function onRequest(request, response, next)
{
    console.log(request.params);
        var requestData = Object.keys(request.params);
        var customJsonString = '';
        var keyValue = '';

        for(i = 1; i < requestData.length; i++) {
             keyValue = requestData[i];
             console.log(request.params.keyValue);
             customJsonString += "" + requestData[i] + " : " + requestData[i] + ", ";
        }

        console.log(customJsonString);
}

function start()
{
    server.use(restify.fullResponse()).use(restify.bodyParser());
    server.get(/^\/(.*)/, onRequest);
    server.post(/^\/(.*)/, onRequest);
    server.listen(8888);

    console.log("Server has started.");
}

exports.start = start;

我将非常感谢有关此问题的任何帮助。

【问题讨论】:

    标签: javascript node.js restify


    【解决方案1】:

    试试这个:

    console.log(request.params[keyValue]);
    

    request.params.keyValue 的意思是给我属性keyValue的值,而上面的代码意思是给我名字存储在变量keyValue 中的属性的值.

    另外,您确定要以i = 1 开头吗? Javascript-arrays 是从 0 开始的,所以我认为你需要 i = 0

    【讨论】:

    • 你就是那个男人。它对我有用,我也理解你的观点。而且,是的,我知道 javascript 数组从索引 0 开始,但我需要从索引 1 循环,以便我可以轻松跳过索引 0 上的内容:)
    【解决方案2】:

    如果您能给我们您现在正在测试的 URL 以及您获得的控制台输出,这可能会有所帮助。

    但是,请注意 Javascript 中的数组具有基于 0 的索引,您的循环应如下所示:

    for(var i = 0; i < requestData.length; i++) {
    }
    

    要遍历对象的属性,您可能应该使用 for..in:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

    我不知道这是否能解决您的问题,但这是一个开始。

    【讨论】:

    • 代码在任何地方都不可用。这就是为什么我粘贴了完整的代码,以便您可以使用它。
    • 起始索引在这里不是问题。
    猜你喜欢
    • 2014-01-31
    • 2021-12-18
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多