TJH*_*TJH 1 javascript node.js express
我有一个看起来像这样的端点。
// GET /api/logs/
app.get('/api/logs', function (request, response) {
if (request.query.reverse === true) {
response.send((mainModule.logs).reverse());
}
else {
response.send(mainModule.logs);
}
});
Run Code Online (Sandbox Code Playgroud)
响应是一个对象数组,我希望由查询参数“ reverse”布尔值确定顺序。现在查询似乎没有做任何事情。我究竟做错了什么?谢谢!
Querystring值始终以字符串形式返回,因此您应检查reverse === 'true'
而不是reverse === true
。这是因为Express的req.query直接从Node的querystring解析器(此处的代码)中提取。如果在Node中运行以下命令,则会看到结果为该reverse
参数返回一个字符串而不是布尔值。
var query = require('querystring').parse('reverse=true');
console.log(query); // returns { reverse: 'true' }
Run Code Online (Sandbox Code Playgroud)
请注意,使用request.query.reverse == true
将无效。双方==
并===
会返回false。因此,您需要执行== 'true'
或==='true'
。
归档时间: |
|
查看次数: |
3564 次 |
最近记录: |