2017-10-28 2 views
0

Ich importiere "Bank" in einer Funktion, und ich möchte in then() verwenden.Eval oder Alternative, um ein Objekt durch eine Variable innerhalb dann aufrufen() innerhalb einer Funktion

ich eval bin mit (Tabelle), aber ich bekommen th Fehler: Reference: Bank nicht ‚definiert ist,

import { Bank } from './ormconnectors'; 

const genericResolver = (table, action , values) => { 

    if (action==='list') { 

    const errors = []; 
    return Auth.isAuthenticated() 
     .then(() => { 
     return eval(table).findAll() 
    } 
    } 
} 

Aufruf dieser Funktion:

genericResolver ('Bank', .....); 
+0

Was ist Ihr Rahmen für ES6 Module? In welcher Umgebung läuft der Code, wie wird er übersetzt, wie werden Module geladen, sind die Module gebündelt? – Bergi

+0

Ich laufe mit nodemon./server.js --exec babel-node -e js – DDave

+0

wenn ich 'const Bank2 = Bank;' in genericResolve(), und die Parametertabelle ist "Bank2" dann funktioniert – DDave

Antwort

0

Warum Sie eval verwenden bei alle?

Sie sollten stattdessen switch to accessing properties by name:

import { Bank } from './ormconnectors'; 
const tableByName = {"Bank": Bank}; 

... 

     return tableByName[table].findAll() 
+0

Ich denke, das ist die Lösung, aber es ist in ./ormconnectors wo ich alle Tabellen setzen muss Anschlüsse und dann importieren Sie nur eine Variable und verwenden Sie wie Sie geschrieben haben – DDave

+1

Richtig, macht es so macht noch mehr Sinn. – Nickolay

Verwandte Themen