这里是带类并导出的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
请帮助我
答案 0 :(得分:1)
※首先,如果可以的话,应该使用更新的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语句。
对不起,我的英语,我没有执行上面的代码。 可能效果不好。
答案 1 :(得分:0)
像这样使用require
:
const User = require('./user.js').User
./user.js
路径假定user.js
文件与usersApi
在同一目录中。
话虽这么说,您可能只想导出User
:
// ... rest of file
module.exports = User;
const User = require('./user.js')
答案 2 :(得分: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对象导出到user.js文件(例如:module.exports.User = User)中,所以需要User.User.select()。您应该知道的另一信息是,应该在async或promise方法内部调用静态async方法。因此,我使用await User.User.select()