2016-04-25 21 views
-1

私は最近MEAN Stackを使って基本的なアプリケーションを作成し始めましたので、初心者の方は私のコントローラーをすべてセットアップしました。投稿したいのですが、api /誰かが問題を突き止めて助けてくれますか?ありがとう。POST返す404 Not Found

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; 

私は私のWebページ上でアプリケーションを実行し、情報を提出することを行くとき、それは私がしたい、API /ユーザー404が何をすべきか上の任意の提案を見つかりません返します大いにそれを感謝します。私が初心者に言ったように、それを考慮に入れてください。

+1

あなたの問題を解決するルートはどこにありますか?投稿のパスを取るルータがありますが、/ api/usersにGETリクエストを送信するとcontroller.listが呼び出されることはありません...角度$リソースは、あなたがパスを得るために何かを持っていると思っています.../usersの場合 – Zargold

+0

もしy私はあなたが書いたものが何であるかを知るために、最初からアプリケーションを書くことをお勧めします。 – Nonemoticoner

+0

@ザグルドル何を書くか教えていただけますか?私はかなり理解していない。 –

答えて

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(または同等のもの)が必要です。

私はあなたが少し簡単に

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

あなたの努力のために大変ありがとうございました。私は完全に私のパッケージのデザインを改良し、それはうまくいった。私の不器用なコードとあなたの忍耐を忘れてくれてありがとう。 –

関連する問題