2016-03-19 7 views
1

Ich erhalte die folgende Fehlermeldung lesen:Typeerror: kann Eigenschaft 'post' undefinierter in NodeJS

app.post('/api/assignments/user', createUser); 
^

TypeError: Cannot read property 'post' of undefined 

at Object.<anonymous> 
at Module._compile (module.js:435:26) 
at Object.Module._extensions..js (module.js:442:10) 
at Module.load (module.js:356:32) 
at Function.Module._load (module.js:311:12) 
at Module.require (module.js:366:17) 
at require (module.js:385:17) 
at module.exports 
at Object.<anonymous> 

hierfür:

module.exports = function(app, userModel) { 
"use strict"; 

app.post('/api/assignments/user', createUser); 
app.get('/api/assignments/user', findUsers); 
app.get('/api/assignments/user/:id', findUserById); 
app.put('/api/assignments/user/:userId', updateUserById); 
app.delete('/api/assignments/user/:userId', deleteUserById); 

function createUser(req, res) { 
    var newUser = userModel.createUser(req.body); 
    res.json(newUser); 
} 

function findUsers(req, res) { 
    if (req.query.username) { 
     if (req.query.password) { 
      findUserByCredentials(req, res); 
     } else { 
      findUserByUsername(req, res); 
     } 
    } else { 
     var users = userModel.findAllUsers(); 
     res.json(users); 
    } 
} 

function findUserById(req, res) { 
    var userId = parseInt(req.params.id); 
    var user = userModel.findUserById(userId); 
    res.json(user); 
} 

function findUserByUsername(req, res) { 
    var username = req.query.username; 
    var user = userModel.findUserByUsername(username); 
    res.json(user); 
} 

function findUserByCredentials(req, res) { 
    var credentials = { 
     username: req.query.username, 
     password: req.query.password 
    }; 
    var user = userModel.findUserByCredentials(credentials); 
    res.json(user); 
} 

function updateUserById(req, res) { 
    var userId = parseInt(req.params.id); 
    var newUser = userModel.updateUser(userId, req.body); 
    res.json(newUser); 
} 

function deleteUserById(req, res) { 
    var userId = parseInt(req.params.id); 
    userModel.deleteUser(userId); 
    res.send(200); 
} 

}(); 

EDIT: Es ist aus dieser Datei aufgerufen wird :

module.exports = function (app) { 
"use strict"; 

var userModel = require("./models/user.model.js"); 
var formModel = require("./models/form.model.js"); 

require("./services/user.service.server.js")(app, userModel); 
require("./services/form.service.server.js")(app, formModel); 
require("./services/field.service.server.js")(app, formModel); 
}; 

Ich verstehe nicht, warum ich eine TypeError für bekomme Dies.

+0

Können Sie bitte den Code hinzufügen, der dieses Modul verwendet? – AWolf

+0

@AWolf meine Frage bearbeitet, um sie hinzuzufügen – anonn023432

+0

Es ist immer noch nicht klar, woher "app" kommt, wo ist das letzte Modul verwendet? – adeneo

Antwort

2

Sie diese Funktion aufrufen function(app, userModel) {... am Ende von }() mit „app“ beginnen. Und es gibt nichts zurück. So erhalten Sie undefined unter Module._compile.

0

Sie müssen sicherstellen, dass so etwas wie dies zu tun, bevor Sie

var app = express(); 
Verwandte Themen