javascript - nodejs require 返回空对象

标签 javascript node.js

我正在尝试为 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();

第一个控制台输出是 {},第二个未定义

/*
 * 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 原型(prototype)上设置的。

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

您必须传递回调才能异步获取结果。

// module
UMa.prototype.getUsers = function(cb) {
    User.find(cb);
};

// router
userManagement.getUsers(function (err, users) {
    // Handle result.
});

关于javascript - nodejs require 返回空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32656917/

相关文章:

javascript - Node 找不到本地目录中的模块

node.js - 如何使用 EJS 呈现使用 Express 和 Node.JS 的 Mongodb 查询结果?

javascript - 如何在 jQuery.get() 中有一个进度条

javascript - 禁用选择字段并将 "disabled"显示为选定选项

javascript - Google Drive API 文件 downloadUrl 返回 401

http - Express/NodeJS 无法在发送后发送 header 由 http 请求引起

javascript - 在 Express js 路由中创建过滤器

javascript - 在 Angular JS 上悬停时添加类

javascript - 谁能告诉我为什么会出现MySQL语法错误?

node.js - 无法再在 request.jar 中添加 cookie