2016-08-02 16 views
0

Dies ist Tag zwei für mit Knoten js und Mongo. Ich habe verschiedene Tutorials versucht, und jetzt, ich versuche, dies zu folgen ein: https://github.com/amejiarosario/todoAPIjs/commit/d3be6a287e8aff39ab862971da4f050d04e552a1GET Methode für eine "Standorte" Route in Knoten js Anwendung ist fehlgeschlagen

Problem:

ich eine Express-Anwendung, die startet, aber nicht zurückgibt Daten aus meiner Datenbank . Ich gehe davon aus, dass ich die Methode entweder falsch anrufe, oder irgendwo habe ich Großbuchstaben für niedrigere? Oder etwas Einzigartiges gemacht, das Plural sein sollte? Wenn Sie mir helfen können, meinen Fehler zu lokalisieren, würde ich es begrüßen.

-Code/Hintergrund-Infos

Vorerst habe ich in Ordnung gebracht nur eine GET-Anfrage in meinem API auf.
ich starten Sie die Anwendung wie folgt:

[email protected]:/var/www/html/node/inventory$ DEBUG=inventory ./bin/www 
model schema defined 
successfully exported database schema 
inside locations routing file 
connection successful 
curl localhost:3000/locations 
curl localhost:3000/locations/    
curl localhost:3000/Locations/ 
curl localhost:3000/Locations 

Ich habe auch versucht, die App starten durch „Knoten app.js“ aufrufen und dann einen Browser öffnen und läuft „localhost: 3000/locations“. Ich bekomme eine Fehlermeldung "localhost weigerte sich zu verbinden". Wie Sie jedoch aus der Debug-Ausgabe sehen können, wenn ich über die Befehlszeile laufe, verbinde ich mich mit der Datenbank ... und erstelle auch das Schema.

Anwendungsstruktur:

Dies ist meine Ordnerstruktur für meine ausdrückliche Anwendung:

[email protected]:/var/www/html/node/inventory$ ls -lah 
total 44K 
drwxr-xr-x 8 jlee jlee 4.0K Aug 2 14:37 . 
drwxrwxr-x 4 jlee jlee 4.0K Aug 2 14:22 .. 
-rw-rw-r-- 1 jlee jlee 1.8K Aug 2 14:37 app.js 
drwxr-xr-x 2 jlee jlee 4.0K Aug 2 14:02 bin 
drwxrwxr-x 2 jlee jlee 4.0K Aug 2 14:40 models 
drwxrwxr-x 75 jlee jlee 4.0K Aug 2 14:04 node_modules 
-rw-rw-r-- 1 jlee jlee 2.9K Aug 2 14:14 npm-debug.log 
-rw-rw-r-- 1 jlee jlee 384 Aug 2 14:02 package.json 
drwxr-xr-x 5 jlee jlee 4.0K Aug 2 14:02 public 
drwxr-xr-x 2 jlee jlee 4.0K Aug 2 14:42 routes 
drwxr-xr-x 2 jlee jlee 4.0K Aug 2 14:02 views 

In den folgenden Abschnitten Sie die wichtigsten Teile des Codes zeigt:

app.js

1 var express = require('express'); 
    2 var path = require('path'); 
    3 //var favicon = require('serve-favicon'); 
    4 var logger = require('morgan'); 
    5 var cookieParser = require('cookie-parser'); 
    6 var bodyParser = require('body-parser'); 
    7 
    8 var routes = require('./routes/index'); 
    9 var users = require('./routes/users'); 
10 var locations = require('./routes/locations'); 
11 
12 var app = express(); 
13 
14 //mongoose connection info and basic connect test 
15 var mongoose = require('mongoose'); 
16 mongoose.connect('mongodb://10.66.6.111/inventory', function(err) { 
17  if(err) { 
18   console.log('connection error', err); 
19  } else { 
20   console.log('connection successful'); 
21  } 
22 }); 

Routen/locations.js

var express = require('express'); 
var router = express.Router();  
var mongoose = require('mongoose'); 
var loc = require('../models/Location.js');  
console.log('inside locations routing file'); 

/* GET /todos listing. */ 
router.get('/', function(req, res, next) { 
    console.log('Inside GET method'); 
    loc.find(function (err, locations) { 
    if (err) return next(err); 
    res.json(locations); 
    }); 
}); 

module.exports = router; 

models/Location.js

var mongoose = require('mongoose'); 

var LocationSchema = new mongoose.Schema({ 
    sip_domain: String, 
    brn: String, 
    ndc: String, 
    type: String, 
    playbook_run_date: { type: Date, default: Date.now }, 
    status: Boolean, 
    tenant_name: String, 
    customized: Boolean, 
}); 

console.log('model schema defined'); 
module.exports = mongoose.model('location', LocationSchema); 
console.log('successfully exported database schema'); 

Datenbank

In der Inventar-Datenbank habe ich eine Sammlung „genannt Standorte "(Beachten Sie, dass es Plural ist, während ich in meinem Modell Singular verwende)

Ich lese gerade auf Express-Routing hier: http://expressjs.com/en/guide/routing.html aber in der Zwischenzeit, wenn Sie sehen, wo ich in die Irre gegangen bin, bin ich ganz Ohr!

Dank

EDIT 3

hinzugefügt diese Zeilen nach unten von app.js: (direkt vor dem Modul.Exporte nennen)

73 var http = require('http'); 
74 var port = process.env.PORT || 3030; 
75 http.createServer(app).listen(port); 
76 
77 module.exports = app; 

Und wenn ich zu Test versuchen:

[email protected]:/var/www/html/node/inventory$ DEBUG=inventory ./bin/www 
model schema defined 
successfully exported database schema 
inside locations routing file 
connection successful 
curl localhost:3030/locations 
+0

versuchen ersetzen mit dieser Zeile loc.find ({}, Funktion (Fehler, Standorte) – slorenzo

+0

@SebastianLorenzo Entschuldigung, können Sie klären, was du meinst? Ich verstehe nicht. Sorry ... – Happydevdays

Antwort

0

Sie den Server Schöpfung fehlt.

var http = require('http'); 
var port = process.env.PORT || 8080; 
http.createServer(app).listen(port); 

Alternativ Verwendung:

app.listen(port, function() { 
    console.log('Listening on port ' + port); 
}); 

Diese Linien am unteren Rand des app.js, bevor module.exports sein sollte.

+0

Hallo, ich habe fügte hinzu, dass Linie, aber es hat nichts geändert. Ich werde einen Link zu Pastebin mit ganzen app.js – Happydevdays

+0

http://pastebin.com/Pg23p6ib - bitte überprüfen Zeile 39. Das ist, was ich hinzugefügt habe. Vielleicht muss ich sagen es explizit auf Port 3000 zu hören? – Happydevdays

+0

Bitte sehen Sie meine aktualisierte Antwort –