gpt4 book ai didi

javascript - Express (sequelize) 导出异步函数

转载 作者:行者123 更新时间:2023-12-03 22:39:09 25 4
gpt4 key购买 nike

我对表达/NodeJS 很陌生。我开始编写一个小应用程序,提供一个 REST API。整个事情应该是这样的:

  • 请求被路由 (routes.js)
  • route.js 中的
  • , Controller 中的一个函数被称为
  • 因为我的 Controller 包含应用程序的逻辑,所以它应该返回使用 res.json(CONTROLLER_FUNCTION()) 发送的数据。

  • 我的代码:

    Controller .js
    User = require('../models/user')

    module.exports.users = function users() {
    users = User.findAll().then(users => {
    return users;
    });

    }

    路由.js
    /* GET users listing. */
    router.get('/', function (req, res, next) {
    res.json(userController.users())
    });

    所以当我的路线被调用时,什么也没有发生。我相信这是因为我的 Controller 逻辑是异步的。可能我必须实现类似包装器/回调函数的东西(?)

    所以基本上我的问题是:处理这种情况的“正确”方法是什么?我的代码应该是什么样子的?

    例子:
    我通常会做的是传递给 userController.users 一个函数,该函数在异步操作完成时被调用(.then)。

    路由.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);
    });
    }

    这是最好的方法吗?/这被认为是好的做法吗?甚至建议不要将我的代码直接放入 routes.js 中吗?

    最佳答案

    module.exports.getUsers = async () => {
    const users = await User.findAll();

    return users;
    }

    关于javascript - Express (sequelize) 导出异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53020123/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com