2017-10-28 74 views
0

我在一個函數中導​​入'Bank',並且我想在then()中使用inside。eval或替代方法調用一個對象通過一個函數內部的變量然後()內

我使用eval(表),但我得到個錯誤:沒有定義銀行,

import { Bank } from './ormconnectors'; 

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

    if (action==='list') { 

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

調用這個函數:引發ReferenceError

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

什麼是你的ES6模塊框架?代碼在哪個環境下運行,是否被轉發,模塊如何加載,模塊是否捆綁在一起? – Bergi

+0

我運行nodemon ./server.js --exec babel-node -e js – DDave

+0

如果我插入'const Bank2 = Bank''在genericResolve()內部,並且參數表是'Bank2',然後運行 – DDave

回答

0

你爲什麼要使用eval在所有?

而應該switch to accessing properties by name

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

... 

     return tableByName[table].findAll() 
+0

我認爲這是解決方案,但它在./ormconnectors',我必須把所有的表連接器,然後導入一個變量並像你寫的那樣使用 – DDave

+1

對,這樣做更有意義。 – Nickolay

相關問題