2016-04-25 95 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

非常感谢你的努力,这并没有完全解决问题我彻底改造了我的包装的设计,并且解决了问题。感谢您支持我笨拙的代码和耐心。 –