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
versuchen ersetzen mit dieser Zeile loc.find ({}, Funktion (Fehler, Standorte) – slorenzo
@SebastianLorenzo Entschuldigung, können Sie klären, was du meinst? Ich verstehe nicht. Sorry ... – Happydevdays