2016-08-03 8 views
0

Wenn ich versuche, Object Prototyp zugreifen Funktion aus, nachdem das Objekt mit module.exports exportieren, erhalte ich:Node.js/Express mit module.exports und Prototyp

TypeError: Cannot read property 'auth' of undefined

Es sieht aus wie die A.prototype .auth wird nicht mit module.exports übergeben, aber warum?

Server.js

'use strict'; 

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

var AReq = require('./src/apiCall'); 
var A = AReq("a", "b"); 

var serverPort = 3000; // Server port 
var __apipath = "/api/v1/"; // API path 

app.use(bodyParser.json()); 

// Authentication API route 
app.get(__apipath + "auth", function (req, res) { 
    return A.Auth; 
}) 

// Server listener setup 
app.listen(serverPort, function() { 
    console.log('Server has been started on port ' + serverPort); 
}); 

module.exports = app; 

/src/apiCall.js

'use strict'; 

function A(login, password) { 
    var options_auth = { 
     user: login, 
     password: password 
    }; 
} 

A.prototype.auth = function() { 
    return "test"; 
}; 

module.exports = A; 

Antwort

0

Sie benötigen eine neue Instanz von apiCall.js zu erstellen, ändern

var AReq = require('./src/apiCall'); 
var A = AReq("a", "b"); 

Mit

var AReq = require('./src/apiCall'); 
var A = new AReq("a", "b"); 
+0

Was für ein Fehler auf meiner Seite ... Danke – SDeba