2017-07-20 2 views
0

Ich versuche, eine RESTful Webservice nach dieser Anleitung zu bauen: https://www.codementor.io/olatundegaruba/nodejs-restful-apis-in-10-minutes-q0sgsfhbdNode.js erholsamer Webservice mit Express und Mungo. Routing funktioniert nicht

Es funktioniert nicht mich Rückkehr ein kann nicht/Berichte Fehler ... Ich versuche node.js zu lernen und ich kann den Fehler nirgends finden und alles, was ich versucht habe, hat nicht funktioniert.

Auch, wenn ich den Server anrufe, erreicht es index.js, die ein "HEY" druckt. Sollte das nicht zuerst server.js erreichen?

Hier ist mein Code:

Server.js

var express = require('express'), 
app = express(), 
port = process.env.PORT || 3000, 
mongoose = require('mongoose'), 
Report = require('./api/models/reportModel.js'), 
bodyParser = require('body-parser'); 

mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://localhost/server'); 


app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 


var routes = require('./api/routes/reportRoute.js'); 
routes(app); 



app.listen(port); 


console.log('Report RESTful API server started on: ' + port); 

reportRoute.js

'use strict'; 
    module.exports = function(app) { 
    var reports = require('../controllers/reportController.js'); 


    // report Routes 
    app.route('/reports') 
    .get(reports.list_all_reports) 
    .post(reports.create_a_report); 


    app.route('/reports/:reportId').get(reports.read_a_report) 
    .put(reports.update_a_report) 
    .delete(reports.delete_a_report); 
}; 

reportController.js

'use strict'; 


var mongoose = require('mongoose'), 
    Report = mongoose.model('Reports'); 

exports.list_all_reports = function(req, res) { 
    Report.find({}, function(err, report) { 
    if (err) 
     res.send(err); 
    res.json(report); 
    }); 
}; 




exports.create_a_report = function(req, res) { 
    var new_report = new Report(req.body); 
    new_report.save(function(err, report) { 
    if (err) 
     res.send(err); 
    res.json(report); 
    }); 
}; 


exports.read_a_report = function(req, res) { 
    Report.findById(req.params.reportId, function(err, report) { 
    if (err) 
     res.send(err); 
    res.json(report); 
    }); 
}; 


exports.update_a_report = function(req, report) { 
    Report.findOneAndUpdate({_id: req.params.taskId}, req.body, { new: true }, function(err, report) { 
    if (err) 
     res.send(err); 
    res.json(report); 
    }); 
}; 


exports.delete_a_report = function(req, res) { 


    Report.remove({ 
    _id: req.params.reportId 
    }, function(err, report) { 
    if (err) 
     res.send(err); 
    res.json({ message: 'Report successfully deleted' }); 
    }); 
}; 

Vielen Dank für Ihre Hilfe .. .

EDIT:

index.js

const express = require('express'); 
const app = express(); 
var route = require('./api/routes/reportRoute'); 

app.get('/', function(req, res) { 
    res.send('HEY!'); 
}) 
app.listen(3000, function(){console.log('Server running on port 3000')}); 
+0

ist das alles Code, den Sie geschrieben haben. Ich denke, Sie sind nicht verbinden Router-Datei korrekt –

+0

Was fehlt für meinen Router? –

+0

, um dies einfach nur in app.js bearbeiten zu lassen. nach 'app.use (bodyParser.json());' add 'app.get ('/ test', function (req, res) {res.jsonp ({daten: 'hallo'});})' dann versuche es localhost: port/test und erzähl uns was passiert ist? –

Antwort

0

Sie haben nicht gepostet Ihre reportController.js aber dieses Problem tritt auf, wenn die Funktion list_all_reports keine Antwort Körper nicht eingestellt. Zum Beispiel sollte das Hinzufügen der

der Handler-Funktion es funktionieren.

+0

gerade hinzugefügt es ... danke für Ihre Antwort. Meine Funktion gibt zurück ** Bericht ** aber meine Datenbank ist leer, könnte dies das Problem sein? –

+0

Können Sie die Funktion exports.list_all_reports durch 'res.json ({hallo:" world "}) ersetzen;' nur um eine Plausibilitätsprüfung durchzuführen? – harshpatel991

+0

Ich habe es einfach versucht, nicht funktioniert ... Bekam die gleiche Antwort: KANN NICHT/Berichte erhalten –

Verwandte Themen