Nodejs要求返回空对象

nodejs require returns empty object

本文关键字:对象 返回 Nodejs      更新时间:2023-09-26

我试图为node.js编写自己的模块,但当我需要它时,它是空的,我定义的方法是未定义的。

// module
var User = require('../models/user');
var UMa = function() {};
UMa.prototype.getUsers = function() {
    User.find({}, function(err, users) {
        return users;
    });
};
module.exports = new UMa();

第一个控制台输出是{},第二个是undefined

/*
 * Router for /
 */
var express = require('express');
var userManagement = require('../modules/user-management');
var User = require('../models/user');
var router = express.Router();
router.get('/users', function(req, res) {
    console.dir(userManagement);
    console.log(userManagement.getUsers());
    res.render('users', {users: userManagement.getUsers() });
});

我看不出有什么问题。

你的getUsers函数没有在你的第一个console.log中显示,因为它是在你的userManagement的原型上设置的。

第二个console.log返回未定义,因为您没有在getUsers函数中返回任何内容。

你必须通过一个回调来异步获取你的结果。

// module
UMa.prototype.getUsers = function(cb) {
    User.find(cb);
};
// router
userManagement.getUsers(function (err, users) {
    // Handle result.
});