我对表达NodeJS非常陌生。我开始写一个小应用程序,提供一个REST API。整个过程应该像这样:
我的代码:
controller.js
User = require('../models/user')
module.exports.users = function users() {
users = User.findAll().then(users => {
return users;
});
}
routes.js
/* GET users listing. */
router.get('/', function (req, res, next) {
res.json(userController.users())
});
因此,当我的路线被呼叫时,什么也没有发生。我相信这是因为我的控制器逻辑是异步的。可能我必须实现类似包装器/回调函数(?)
所以基本上我的问题是:处理这种情况的“正确”方法是什么?我的代码应如何显示?
示例: 我通常要做的是将一个函数传递给userController.users,该函数在异步操作完成后就会被调用(.then)。
routes.js
/* GET users listing. */
router.get('/', function (req, res, next) {
userController.users((data) => res.json(data));
});
controller.js
User = require('../models/user')
module.exports.users = function users(send) {
users = User.findAll().then(users => {
send(users);
});
}
这是最好的方法吗? /这被认为是好的做法吗?甚至建议不要将我的代码直接放入route.js?
答案 0 :(得分:0)
module.exports.getUsers = async () => {
const users = await User.findAll();
return users;
}