TypeError: exiger(...) n'est pas une fonction

J'obtiens l'erreur suivante:

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

TypeError: require(...) is not a function
at module.exports 
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 Function.Module.runMain (module.js:467:10)
at startup (node.js:136:18)

quand j'essaie de require 2 fichiers, en utilisant le code suivant:

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);
};

Je suis nouveau à cela et je ne peux pas comprendre le problème. Quelqu'un peut-il svp m'expliquer et m'aider à trouver une solution?

EDIT: l'Ajout d'user.services.server.js:

module.exports = function(app, userModel) {
"use strict";
app.post('/api/assignment/user', createUser);
app.get('/api/assignment/user', findUsers);
app.get('/api/assignment/user/:id', findUserById);
app.put("/api/assignment/user/:userId", updateUserById);
app.delete("/api/assignment/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);
}
}();
  • Le problème est dans "./services/user.service.server.js" - ce qui fait que le code ressemble?
  • J'ai édité ma question pour ajouter ce fichier
  • N'est-ce pas l'erreur dans var userModel = require("./models/user.model.js")();? Avez-vous essayé de supprimer les parenthèses? Donc var userModel = require("./models/user.model.js"); et puis même pour la ligne suivante
  • La dernière ligne de user.service.server.js est }(). Cela signifie que le module.export ligne de ce fichier est de l'exportation de la valeur de retour de la fonction, et non pas la fonction elle-même. Se débarrasser de la ().
InformationsquelleAutor anonn023432 | 2016-03-19