POST返回404没有找到
问题描述:
我最近开始使用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未找到该怎么做任何建议,我会非常感谢它。正如我所说,我是初学者,所以请考虑这一点。
答
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
非常感谢你的努力,这并没有完全解决问题我彻底改造了我的包装的设计,并且解决了问题。感谢您支持我笨拙的代码和耐心。 –
你的获取路线在哪里,这是你的问题......你有一个路由器,它采取后的路径,但我没有看到controller.list被调用时,你/ GET/GET/GET用户... Angular $资源认为你有一些东西在获取路径...对于/用户 – Zargold
如果y你是一个“全面的初学者”,那么我建议你从头开始编写应用程序,以便你知道你写的是什么东西。 – Nonemoticoner
@Zargold你能告诉我该写什么吗?我不太明白。 –