我是node.js的新手,有点困在这里。
[ {
"key": "key1",
"value": "value1"
},
{
"key": "key2",
"value": "value2"
}
]
对于一个特定的键,我需要得到值。
function filterValue() {
const category = {};
category.filter = "key1" //this is not static value. This changes dynamically
category.value = //Need to read the keyValue.json file and pick the value for key1 - which is value1
return category;
}
如何在node.js中实现这一点?感谢您的帮助。
2条答案
按热度按时间62lalag41#
我假设你已经把json解析成了一个变量。所以我的例子将使用这个:
如果没有,那么在节点中,只要它是静态文件,我们就可以只需要它。但是,这将在应用程序的执行范围内加载一次。
如果因为某些原因而需要动态读取它,那么你需要使用fs(总是在node中异步执行)。
如果你更喜欢Promises而不是回调:
现在,有了这两种方法中的任何一种,您都可以简单地使用Promise
或者如果使用异步
所以现在我们需要一个可组合的过滤器来使用Array的find方法。在最新版本的Node(Carbon及以上版本)中:
如果您是node6或更低版本的用户,请使用旧方法
现在我们可以在数组上使用这个过滤器,随时改变我们正在寻找的键(因为它是可组合的)。
如果键不存在,将返回undefined,否则,我们有对象。
此筛选器还可用于Array中的其他搜索,例如查找索引
如果允许“key”在数组中重复,则可以使用filter将它们全部抓取
综上所述,我们可能会将我们关注的领域放在不同的文件中。所以可能是getJsonFile.js和keyFilter.js,所以现在放在一起,我们会看起来像这样(将此文件称为readKeyFromFile):
我们的消费者
一旦理解了这些基本原理,你就可以有很多组合来做到这一点。所以,玩得开心点。:)
m3eecexj2#
如果你有一个名为keyValue的json对象,首先导入它并将其命名为keyValue,然后尝试这样做,