我在从外部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
答案 0 :(得分:2)
您没有将所需文件分配给变量:
var UsersCollection = require('./logic/UsersCollection.js');
var usersCollection = new UsersCollection();
此外,在UsersCollection.js
您需要导出UsersCollection
module.exports = UsersCollection;
答案 1 :(得分:1)
我没有看到您的UsersCollection.js文件中的导出,如:
module.export = UsersCollection
如果您在UserCollection.js文件中添加此行,则可以从另一个文件中请求该行。
我希望它会对你有所帮助。
由于
答案 2 :(得分:0)
我相信如果您要访问位于当前文件的父目录中的逻辑文件夹中的 UsersCollection.js 文件,您的require文件应如下所示
require('../logic/UsersCollection.js');