You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS+Sequelize调用service层create方法返回undefined如何解决

问题根源
  • 你的createUser async函数没有显式向外层返回值,默认返回undefined。你写在.then()/.catch()回调里的return语句,只会把值返回给回调本身,不会传递到外层createUser函数的返回结果中。
  • 混用await和Promise链式调用的写法,也容易混淆返回值的作用域,增加排查成本。
修复方案

方案1:保留Promise链式调用写法

直接返回整个User.create的Promise链式调用结果即可,无需额外加await:

module.exports.createUser = async (userData) => {
    let user = {
        first_name: userData.first_name,
        last_name: userData.last_name,
        email: userData.email,
        password: userData.password
    };
    // 直接返回整个Promise链,外层await可以拿到回调返回的结果
    return User.create(user).then(result => {
        console.log('success');
        return result;
    }).catch(error => {
        console.log('error');
        return 'test';
    })
}

方案2:统一用async/await写法(更推荐,可读性更高)

用try/catch替代.then/.catch,逻辑更清晰,避免作用域混淆:

module.exports.createUser = async (userData) => {
    let user = {
        first_name: userData.first_name,
        last_name: userData.last_name,
        email: userData.email,
        password: userData.password
    };
    try {
        const result = await User.create(user)
        console.log('success')
        return result
    } catch (error) {
        console.log('error')
        return 'test'
    }
}

内容的提问来源于stack exchange,提问作者Sameera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:36:03