javascript - 如何在带有 Nedb 的 node.js 中使用变量作为点符号地址?TypeError'无法读取未定义的属性'find'
问题描述
因此,我正在尝试使用 Nedb 作为基础数据库(暂时)创建多种语言的论坛。我想将变量“语言”传递到“点符号”地址中。这可能吗?
const Datastore = require('nedb');
const db = {};
db.forum = new Datastore('forum.db');
db.forum_de = new Datastore('de_forum.db');
db.forum.findOne({ "TYPE": req_TYPE, "forum_UID":req_ID }, function (err, docsT) {
if(docsT !== null) {
var s_lan = docsT.USER_LEARN_LAN
s_lan = '_' + s_lan
db.forum+s_lan.find({ $or: [{ "PARENT_ID": req_ID }, { 'GRAND_PARENT_ID': req_ID }] }, async
function (err, docs) {
if(docs.length !== 0 ){
因此,用户感兴趣的线程位于 db.forum 中,搜索结果显示用户的语言“s_lan”。然后我想使用这个结果来搜索 Datastor db.forum_de。
如何将点符号地址中的变量包含到数据存储中?
解决方案
为了使用变量/动态访问/设置对象的字段,您需要使用[]
语法。对于给出的示例,如果您使用的是 es6 及更高版本,我们将有如下内容。
let langKey = `forum_${s_lan}`
db[langKey].find()
推荐阅读
- python - 带有 tkinterdnd2 模块的 *.py 脚本不会编译为可执行文件
- r - 从包含间隙的序列中获取开始和结束范围
- jquery - jQuery .scrollLeft() 在我输入 contenteditable div 时不匹配
- javascript - React Native + Jest - FlatList 错误 - “ReactDebugCurrentFrame.setExtraStackFrame 不是函数”
- reactjs - 是的,需要验证不起作用,并且没有为空字段提供错误
- swagger - 请求模型字段有时需要,有时不依赖于操作
- python - Python for 和 if 循环用于分类
- java - Java 修改列表中的元素
- javascript - JS中使用索引值数组访问数组的一部分
- vue.js - Vite Vue3 更改布尔值