在nodejs中导出对象时未定义value

时间:2015-10-17 18:29:57

标签: javascript node.js express

在我的app.js文件中,我要导出一个包含属性和值的对象。在路由上,我包含文件,但我得到的值是undefined。如果我没有通过论证"用户"在createUser函数中,它将值返回为undefined。如果我传入参数,服务器崩溃并说它无法获取未定义的.id。我的目标是在达到路径时将值增加1。

我的app.js文件:

exports.users = {
    id : 1,
    room : 0
};
var express = require('express');
var app = express();
var enter = require('./routes/enter');
var chat = require('./routes/chat');
var room = require('./routes/room');
var user = require('./routes/user');
var update = require('./routes/update');


app.use('/room', room);
app.use('/user', user);
app.use('/enter', enter);
app.use('/chat', chat);
app.use('/update', update);
app.use(express.static('public/dist'));
app.use(express.static('public/js'));
app.use(express.static('public/dist/images'));
app.use(express.static('bower_components'));

app.listen(1337);

我的用户文件:

var express = require('express');
var user = express.Router();
var room = require('./room.js');
var users = require('../app.js').users;


user.get('/', function(req, res) {

    createUser();
    res.send(users.id.toString());
});

function createUser(){
    users.id = users.id + 1;
    console.log(user.id + ' this is the user.id');
    return users;
}
module.exports = user;

1 个答案:

答案 0 :(得分:0)

  var users = {
    id : 1,
    room : 0
 };
 exports.users = users;
简单的好奇心,但如果你这样做会发生什么?

ToPass your problem

var express = require('express');
var user = express.Router();
var room = require('./room.js');
//var users = require('../app.js').users;
var users = {
  id : 1,
  room : 0
};

user.get('/', function(req, res) {

    createUser();
    res.send(users.id.toString());
});

function createUser(){
    users.id = users.id + 1;
    console.log(user.id + ' this is the user.id');
    return users;
}
module.exports = user;

此模块外部似乎不需要Users,因此您可以使用“用户”模块创建它。

users.id = users.id + 1;  

它总会像你想要的那样递增!