这里是带有类和导出的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 6.0版。
你可以通过module.exports
导出对象并通过require
导入。
class User {
static async select() {
const selectResult = await usersDAL.listUsers();
return camelizeKeys(selectResult);
}
}
module.exports = User;
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语句。
对不起我的英语和我不执行上面的代码。它可能不会很好。
通过像这样使用require
:
const User = require('./user.js').User
./user.js
路径假设user.js
文件与usersApi
在同一目录中。
据说你可能只想导出User
:
// ... rest of file
module.exports = User;
const User = require('./user.js')
根据你的问题和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()