POST返回404 Not Found

时间:2016-04-25 19:52:10

标签: angularjs node.js mongodb express

我最近开始使用MEAN Stack来创建一个基本的应用程序,所以我是一个初学者,我设置了我的控制器和一切,我想发布,但是它返回api / user 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(signup-controller.js):

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

客户端控制器(signup-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 / user 404没有找到任何关于该做什么的建议,我非常感谢。正如我刚才所说的那样,请考虑到这一点。

1 个答案:

答案 0 :(得分:1)

Server.js添加:

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

signup-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的文件连接到mongoose,然后您需要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);