代码之家  ›  专栏  ›  技术社区  ›  kovac

在NodeJS中导入后,不会显示导出的函数

  •  0
  • kovac  · 技术社区  · 6 年前

    我正在尝试从文件中导入一些异步等待函数。然而,似乎在进口之后,没有任何出口变得可见。我只看到asyc在等待这个问题。就我所见,我对正常功能做了同样的事情,它似乎工作正常。

    我尝试导入的文件是 helper.ts 代码如下:

     // some dependencies like below:
     import mydriver from "driver";
    
     const driver = mydriver.driver(
        // connection settings
     );
    
     module.exports = {
       myFunction: async (arg) => {
         const session = driver.session();
         var result = await session.writeTransaction(
           // a query
         );
         session.close();
         return result;
       }
    }
    

    然后在另一个文件中导入如下内容:

    import helper = require("./helper");
    
    // Below line throws error
    var result = helper.myFunction(arg);
    

    错误是

    Property 'myFunction' does not exist on type 'typeof "/mydirectory/helper"'

    1 回复  |  直到 6 年前
        1
  •  2
  •   vapurrmaid    6 年前

    该行:

    import helper = require("./helper");
    

    应为:

    const helper = require('./helper');
    

    看起来您可能有多个要导出的函数,在这种情况下,此替代语法用于分配给 module.exports 如中所述 https://stackoverflow.com/a/38174623/8954866

       const privateFn = () => { }
    
       module.exports = {
          async myFunction (arg) {
            // method body
            return result;
          },
    
          async Foo () {
            // method body
            privateFn()
            this.myFunction("bar")
          }
        }