【问题标题】:Nodejs 8 - How to use Async/Await with mongooseNodejs 8 - 如何使用 Async/Await 和 mongoose
【发布时间】:2018-02-28 14:05:57
【问题描述】:

我正在使用 nvm 运行 nodejs 版本 v8.5.0。

我有一个简单的索引函数,它使用 mongoose 返回我的 mongo db 中的所有用户。

User.find({}, (err, results) => {

            if (err) {
                return res.json(err);
            }

            return res.json(results);
});

我正在尝试将传统的回调方法转换为新的异步和等待。

user.controller.js

'use strict';

const User           = require('../models/user.model');

class UserController {

    constructor() {

    }

    async index(req, res) {

        try {
            let result = await User.find({});
            return res(result);

        } catch (e) {
            return res.json(e);
        }

    }

    show(req, res) {

    }

    update(req, res) {

    }

    store(req, res) {

    }

    destroy(req, res) {

    }

}

module.exports = UserController;

user.route.js

'use strict';

let express    = require('express');
let router     = express.Router();
let controller = require('../controllers/user.controller');
controller     = new controller();

router.get('/', controller.index);
router.get('/:id', controller.show);
router.post('/', controller.store);
router.put('/:id', controller.update);
router.delete('/:id', controller.destroy);

module.exports = router;

但是当我运行它时,我得到一个空对象。

【问题讨论】:

  • 显示调用index()
  • @zero298 更新了我的问题
  • 一个空对象返回,你的意思是{}?
  • @alexmac 是的,它返回 {},没有错误。
  • result 是否填充到 index() 中?

标签: node.js express asynchronous mongoose


【解决方案1】:

空对象是错误(调用 res.json(javascript_error) 将返回一个空对象)。

代替

return res(result);

使用

res.send(result)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 2019-07-20
    • 2022-11-18
    • 2019-12-21
    • 2018-06-13
    • 1970-01-01
    • 2019-02-17
    • 2022-11-23
    相关资源
    最近更新 更多