首页 > 解决方案 > 如何在带有 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。

如何将点符号地址中的变量包含到数据存储中?

标签: javascriptarraysnode.jsnedb

解决方案


为了使用变量/动态访问/设置对象的字段,您需要使用[]语法。对于给出的示例,如果您使用的是 es6 及更高版本,我们将有如下内容。

let langKey = `forum_${s_lan}`
db[langKey].find()

推荐阅读