2016-04-25 24 views
-1

Ich habe vor kurzem MEAN Stack verwendet, um eine Basisanwendung zu erstellen, also bin ich ein absoluter Anfänger, ich habe meine Controller und alles eingerichtet, und ich möchte posten, aber es gibt api/user nicht gefunden, Kann jemand das Problem lokalisieren und mir helfen? Vielen Dank.POST gibt 404 nicht gefunden

Server.js:

var app = require ('./app/app'); 
var signupController = require ('./server/signup-controller'); 

app.post('api/users', signupController.create); 
app.listen('8080', function(){ 

    console.log('[OK] => HTTP Server listening on http://localhost:8080'); 
    require('./app/db').init('mongodb://localhost:27017/shopialmedia'); 
}); 

Server-Seite Controller (Anmelde-controller.js):

module.exports.create = function (req, res) { 
    console.log(req.body); 
} 

Client Side Controller (Anmelde-controller.js):

app.controller('signupController', ['$scope', '$resource', function ($scope, $resource) { 
    var User = $resource('/api/users'); 

    $scope.createUser = function() { 
     var user = new User(); 
     user.email = $scope.userEmail; 
     user.password = $scope.userPass; 
     user.firstName = $scope.userFName; 
     user.lastName = $scope.userLName; 
     user.age = $scope.userAge; 
     user.$save(function (result){ 
      $scope.user.push(result); 
      $scope.userEmail = ''; 
      $scope.userPass = ''; 
      $scope.userFName = ''; 
      $scope.userLName = ''; 
      $scope.userAge = ''; 
     }); 
    } 
}]); 

Mein Modul:

var app = angular.module('signupApp', ['ngResource']); 

Mein app.js:

var express = require ('express'); 
var app = express(); 


app.use(express.static('public')); 
require('./routes')(app); 

module.exports = app; 

Wenn ich die Anwendung auf meiner Web-Seite und senden die Informationen, es gibt api/user 404 gefunden keine Vorschläge, was zu tun gehen zu laufen, würde ich sehr zu schätzen wissen. Wie gesagt, ich bin ein Anfänger, also bitte beachten Sie das.

+1

Wo ist Ihre Route, die Ihr Problem ist ... Sie haben einen Router, der den Weg der Post nimmt, aber ich sehe nicht die controller.list aufgerufen werden, wenn Sie eine GET-Anfrage an/api/users ... Angular $ Ressource denkt, dass Sie etwas auf dem get Pfad haben ... für/Benutzer – Zargold

+0

Wenn y Wenn du ein "totaler Anfänger" bist, dann empfehle ich dir, Apps von Grund auf neu zu schreiben, damit du weißt, was du schreibst. – Nonemoticoner

+0

@Zargold können Sie mir sagen, was ich schreiben soll? Ich verstehe das nicht ganz. –

Antwort

1

Server.js hinzufügen:

app.get('api/users', signupController.list); 

Anmelde-controller.js hinzufügen:

mongoose = require('mongoose'), 
    User = mongoose.model('User'); 
module.exports.list = function(req, res){ 
var searcher = req.query || {}; 
User.find(searcher) 
.sort('-created') 
    .exec(function (err, users) { 
    if (err) { 
     return res.status(400).send({ 
     message: errorHandler.getErrorMessage(err) 
     }); 
    } 

    res.json(users); 
    }); 
    }; 

Offensichtlich werden Sie auch mit einer Datei wahrscheinlich genannt main.js haben eine Verbindung dann Mungo Sie benötigen ein UserModel.js (oder gleichwertig), wo Sie die Attribute Ihres Benutzers usw. unter Verwendung des Mungo-Schemas definieren können ...

Ich meine, Sie vermissen viel, wenn Sie etwas ein wenig einfacheres wollen beginnen können Sie einfach tun:

module.exports.list = function(req, res){ 
    var users = []; 
    res.json(users); 
    }; 

auch denken, Sie brauchen dies und dies ist auch schöne Formatierung:

var router = express.Router(); 
    router.route('/') 
    .get(users.list) 
    .get(users.create) 
    app.use('/api/users', router); 

nicht sicher, was diese tun soll oder was ./routes ist: require('./routes')(app);

+0

Vielen Dank für deine Mühe, dies hat das Problem nicht ganz behoben Ich habe das Design meines Pakets komplett überarbeitet und es hat geklappt. Danke, dass Sie sich meinen ungeschickten Code und Ihre Geduld gefallen lassen. –

Verwandte Themen