【问题标题】:Cannot create javascript object from extended file via require无法通过 require 从扩展文件创建 javascript 对象
【发布时间】:2015-11-16 21:32:20
【问题描述】:

我在从外部 javascript 文件创建对象时遇到问题。

这是我的 UsersCollection.js 内容:

var self;

var UsersCollection = function() {
    this.users = [];
    self = this;
};

UsersCollection.prototype.add = function(user) {
    self.users.push(user);
};

这是我的 node.js 服务器文件片段

// server.js
var express = require('express');
var app = express();
var port = 8080;

var rooms = [];
var games = [];

app.set('view engine', 'ejs');

require('./logic/UsersCollection.js');
var usersCollection = new UsersCollection();

当我运行服务器时出现错误:

var usersCollection = new UsersCollection();
                          ^
ReferenceError: UsersCollection is not defined

我做错了什么?

编辑: 谢谢大家,它正在工作:) 我加了

module.exports = UsersCollection;

到 UsersCollection.js 和

var UsersCollection = require('./logic/UsersCollection.js');
var usersCollection = new UsersCollection();

到 server.js

【问题讨论】:

  • 请从您的标题中删除“已解决”并将您的解决方案作为正确答案发布。

标签: javascript node.js require


【解决方案1】:

您没有将所需的文件分配给变量:

var UsersCollection = require('./logic/UsersCollection.js');
var usersCollection = new UsersCollection();

此外,在UsersCollection.js 中,您需要导出UsersCollection

module.exports = UsersCollection;

【讨论】:

    【解决方案2】:

    我没有看到您的 UsersCollection.js 文件中的导出,例如:

    module.export = UsersCollection
    

    如果您在 UserCollection.js 文件中添加这一行,那么您将能够从另一个文件中要求它。

    希望对你有帮助。

    谢谢

    【讨论】:

      【解决方案3】:

      如果您正在访问 UsersCollection.js 文件,该文件位于当前文件的父目录中的逻辑文件夹内,我相信您的要求文件应该如下所示

      require('../logic/UsersCollection.js');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-11
        • 1970-01-01
        • 1970-01-01
        • 2023-01-28
        相关资源
        最近更新 更多