2016-04-25 112 views
-1

我最近開始使用MEAN Stack來創建一個基本的應用程序,所以即時通訊初學者,我設置了我的控制器和一切,我想發佈,但它返回api /用戶找不到,有人可以找出問題並幫助我嗎?謝謝。POST返回404沒有找到

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'); 
}); 

服務器側控制器(註冊-controller.js):

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

客戶端控制器(註冊-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 = ''; 
     }); 
    } 
}]); 

我的模塊:

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

我app.js:

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


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

module.exports = app; 

當我去我的網頁上運行的應用程序,並提交信息,它返回API /用戶404未找到該怎麼做任何建議,我會非常感謝它。正如我所說,我是初學者,所以請考慮這一點。

+1

你的獲取路線在哪裏,這是你的問題......你有一個路由器,它採取後的路徑,但我沒有看到controller.list被調用時,你/ GET/GET/GET用戶... Angular $資源認爲你有一些東西在獲取路徑...對於/用戶 – Zargold

+0

如果y你是一個「全面的初學者」,那麼我建議你從頭開始編寫應用程序,以便你知道你寫的是什麼東西。 – Nonemoticoner

+0

@Zargold你能告訴我該寫什麼嗎?我不太明白。 –

回答

1

Server.js地址:

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

註冊-controller.js地址:

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); 
    }); 
    }; 

很顯然,你還必須連接與文件大概叫main.js到貓鼬然後你需要一個UserModel.js(或者等價物),你可以使用貓鼬Schema來定義你的用戶的屬性...

我的意思是你錯過了很多,如果你想要一些簡單的東西開始你可以這樣做:

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

還認爲你需要這一點,這也是更好的格式:

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

不知道這是應該做的還是什麼./routes是:require('./routes')(app);

+0

非常感謝你的努力,這並沒有完全解決問題我徹底改造了我的包裝的設計,並且解決了問題。感謝您支持我笨拙的代碼和耐心。 –