如何在其他一些js文件中使用exports对象

问题描述 投票:0回答:3

这里是带有类和导出的user.js文件

class User {

        static async select() {
          const selectResult = await usersDAL.listUsers();
          return camelizeKeys(selectResult);
      }
    }

module.exports.User = User;

我想在usersApi文件中使用

router.get('/',(req, res) =>{

    let userList = new  User().select();
    res.send(userList);

});

错误显示

(intermediate value).select is not a function

请帮我

node.js express
3个回答
1
投票

※如果可以,首先应该使用较新的Node.js 6.0版。

你可以通过module.exports导出对象并通过require导入。

how to export

class User {

    static async select() {
      const selectResult = await usersDAL.listUsers();
      return camelizeKeys(selectResult);
  }
}

module.exports = User;

how to import

const User = require('../model/user') // this path is dummy.
router.get('/', async (req, res) =>{

    let userList = await User.select();
    res.send(userList);
});

User.select()是一种用作异步方法的方法。您应该包装Promise-block或使用async-await语句。

对不起我的英语和我不执行上面的代码。它可能不会很好。


0
投票

通过像这样使用require

const User = require('./user.js').User

./user.js路径假设user.js文件与usersApi在同一目录中。

据说你可能只想导出User

user.js

// ... rest of file

module.exports = User;

usersApi.js

const User = require('./user.js')

0
投票

根据你的问题和user.js文件的类图

class User {

        static async select() {
          const selectResult = await usersDAL.listUsers();
          return camelizeKeys(selectResult);
      }
    }

module.exports.User = User;

您想要导出并在usersApi文件中使用它。这样,你就可以使用了

const User = require('.user');

router.get('/', async (req, res) =>{

    let userList = await User.User.select();
    res.send(userList);
});

因为您在user.js文件中导出User对象(例如:module.exports.User = User),所以需要User.User.select()。您应该知道的另一个信息是静态异步方法应该在异步或promise方法中调用。出于这个原因,我使用await User.User.select()

© www.soinside.com 2019 - 2024. All rights reserved.