2016-05-31 9 views
0

Ich bin neu in der Herstellung von API. Ich benutze Node.js und MySQL. Tatsache ist, ich habe zwei GET-Funktion, um alle Benutzer und einen Benutzer nach ID zu erhalten. Beide Funktionen funktionieren, wenn sie alleine implementiert sind. Wenn beide implementiert sind, versucht die Funktion, alle Benutzer einzutragen, in die Funktion einzutreten, um Benutzer nach ID zu bekommen, so dass die API abstürzt. So, hier ist mein ModellNode.js - MySQL API, multi GET Funktionen

var connection = require("../connection"); 

function Users() 
{ 
//GET ALL USERS 
this.get = function(res) 
{ 
    console.log('Request without id'); 
    connection.acquire(function(err, con) 
    { 
     con.query('SELECT * FROM users', function(err, result) 
     { 
      con.release(); 
      if (err) 
       res.send({status: 1, message: 'Failed to get users'}) 
      else 
       res.send(result); 
     }); 
    }); 
} 

//GET USER BY ID 
this.get = function(id, res) 
{ 
    console.log('Request with ID'); 
    connection.acquire(function(err, con) 
    { 
     if (id != null) 
     { 
      con.query('SELECT * FROM users WHERE id = ?', id, function(err, result) 
      { 
       con.release(); 
       if (err) 
        res.send({status: 1, message: 'Failed to find user: ' + id}); 
       else if (result == "") 
        res.send({status: 1, message: 'Failed to find user: ' + id}); 
       else 
        res.send(result); 
      }); 
     } 
    }); 
} 

Und hier ist die routes.js

var users = require('./models/users'); 

module.exports = { 
configure: function(app) { 
app.get('/users/', function(req, res) { 
    users.get(res); 
}); 

app.get('/users/:id/', function(req, res) { 
    users.get(req.params.id, res); 
}); 

Haben Sie users.js eine Idee, warum? Danke für die Hilfe :)

Antwort

0

Sie können nicht zwei Funktionen mit dem gleichen Namen im selben Bereich haben.

Sie haben Ihre Funktionen

/** 
* Get all users 
*/ 
this.get = function(res) {...} 

/** 
* Get user by id 
*/ 
this.getById = function(id, res) {...} 

Oder Sie können eine Funktion haben, benennen und überprüfen, ob eine ID zur Verfügung gestellt Sie mich

this.get = function(id, res) { 
    if (Number.isInteger(id)) { 
    // return the user 
    } else { 
    res = id; 
    // return all users 
    } 
} 
+0

Haha ok Scham danken! :) –