Nodejs 8 - 如何使用与mongoose的Async / Await

时间:2017-09-19 17:19:26

标签: node.js express asynchronous mongoose

使用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;

然而,当我运行它时,我得到一个空对象。

1 个答案:

答案 0 :(得分:1)

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

而不是

return res(result);

使用

res.send(result)