NodeJs:引用错误:(我自己的var)未定义

时间:2015-02-23 08:21:21

标签: javascript node.js express

尝试在路由器文件中要求并使用模块。我设法要求它(我认为),但现在它说出以下错误:

  

ReferenceError:未定义USERS   c:\ work \ nodejs \ router \ main.js:32:19在Layer.handle [as   handle_request]   (c:\ work \ nodejs \ node_modules \ express \ lib \ router \ layer.js:82:5)at at   next(c:\ work \ nodejs \ node_modules \ express \ lib \ router \ route.js:110:13)   在Route.dispatch   (c:\ work \ nodejs \ node_modules \ express \ lib \ router \ route.js:91:3)at at   Layer.handle [as handle_request]   (c:\ work \ nodejs \ node_modules \ express \ lib \ router \ layer.js:82:5)at at   c:\ work \ nodejs \ node_modules \ express \ lib \ router \ index.js:267:22 at   Function.proto.process_params   (c:\ work \ nodejs \ node_modules \ express \ lib \ router \ index.js:321:12)at at   next(c:\ work \ nodejs \ node_modules \ express \ lib \ router \ index.js:261:10)   在c:\ work \ nodejs \ node_modules \ body-parser \ lib \ read.js:111:5 at   IncomingMessage.onEnd   (C:\工作\的NodeJS \ node_modules \体解析器\ node_modules \生体\ index.js:136:7)

其中USERS是一个包含对象数组的对象,如下所示:

//users.js
module.exports = function () {

// Create User prototype and objects
var USERS = { users: [] };

function User(type, useremail, password) {
 this.type = type;
 this.useremail = useremail;
 this.password = password;
}

var Bob = new User("rep", "bob@bob.com", "qwerty");
USERS.users.push(Bob);

var Helen = new User("rep", "helen@helen.com", "test");
USERS.users.push(Helen);

var Dominic = new User("customer", "dom@dom.com", "1234");
USERS.users.push(Dominic);

var James = new User("grower", "james@james.com", "pass1");
USERS.users.push(James);

};

我的路由器代码是:

var url = require('url'); var users = require('./router/users.js');

module.exports = function (app) {

    app.get('/', function (req, res) {
        res.render('index.html');
        console.log("Home page displayed");
    });

app.get('/login', function (req, res) {
        res.render('login.html');
        console.log("Log in page displayed");

    });

app.get('/api/orders/:id', function (req, res) {
      console.log(req.params.id); 
      res.json(ORDER.orders[req.params.id]);
    });

    app.get('/api/orders/', function (req, res) {
      console.log(ORDER); 
      res.json(ORDER);

    });      app.get('/api/users/:id', function (req, res) {
      console.log(req.params.id); 
      res.json(USERS.users[req.params.id]);
    });

    app.get('/api/users/', function (req, res) {
      console.log(USERS); 
      res.json(USERS);

    });

如何在我的路由器中正确引用USERS?

1 个答案:

答案 0 :(得分:4)

//users.js


// Create User prototype and objects
var USERS = { users: [] };

function User(type, useremail, password) {
 this.type = type;
 this.useremail = useremail;
 this.password = password;
}

var Bob = new User("rep", "bob@bob.com", "qwerty");
USERS.users.push(Bob);

var Helen = new User("rep", "helen@helen.com", "test");
USERS.users.push(Helen);

var Dominic = new User("customer", "dom@dom.com", "1234");
USERS.users.push(Dominic);

var James = new User("grower", "james@james.com", "pass1");
USERS.users.push(James);

};

module.exports = USERS

甚至更好:

var getUsers = function(){ return Users.users;};
var addUser = function(name, email, somethingelse)
 { 
  var u = new User(name, email, somethingeelse); 
  Users.users.push(u);
};

module.exports = {
   getUsers: getUsers,
   addUser: addUser
}
相关问题