尝试在路由器文件中要求并使用模块。我设法要求它(我认为),但现在它说出以下错误:
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?
答案 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
}