Недавно я начал изучать стек MEAN, и я столкнулся с проблемой. Я пытаюсь отправить запрос $ http.get с углового на мой локальный сервер, но тело запроса не определено. Что странно, так это то, что в моем посте это не определено. Я знаю, что проблема может быть органом-парсером, и я потратил пару часов, пытаясь понять это безрезультатно. Спасибо за вашу помощь!Почему мой объект запроса пуст?
Вот мой экспресс-код:
var express = require('express');
var mongoose= require('mongoose');
var bodyParser=require('body-parser');
var http=require('http');
var db=mongoose.connect('mongodb://localhost:27017/checkIt');
var server = express();
var Schema= mongoose.Schema;
server.use(bodyParser.urlencoded({
extended: true
}));
server.use(bodyParser.json());
server.use(express.static(__dirname));
var UserSchema = new Schema({
username: String,
password: String
});
var User=mongoose.model('User',UserSchema);
server.post("/checkIt/users",function(req,res){
var newUser = new User({
username: req.body.username,
password: req.body.password
});
newUser.save(function(err,doc){
res.send("inserted");
});
});
server.get("/checkIt/users",function(req,res){
console.log(req.body);
var userToCheck= new User({
username:req.body.username,
password:req.body.password
});
User.findOne({username: userToCheck.username, password: userToCheck.password},function(err,obj){
res.send(obj);
});
});
server.listen(3000);
Вот мой LoginController, где у меня есть запрос получите:
angular.module('app')
.controller('loginController',['$scope','$location', '$http',function($scope,$location,$http){
$scope.checkIfUser = function(){
var user={
username:$scope.username,
password:$scope.password
};
$http.get("http://localhost:3000/checkIt/users",user)
.success(function(response){
if(response===""){
console.log("User does not exist");
}
else goToHome();
});
};
var goToHome = function(){
$location.path('/Home')
}
}]);
Наконец, я не знаю, поможет ли это или нет, но это фрагмент кода, где я делаю запрос $ http.post
$scope.signup = function(){
createUser();
console.log(user);
$http.post("http://localhost:3000/checkIt/users",user)
.success(function(response){
console.log(response);
});
};
Благодарим вас за ответ. Я закончил использование req.query для доступа к значениям, потому что параметры меня не задавали. Я немного прочитаю об этом, чтобы узнать, почему и не волнуйтесь, это для учебных целей, я не буду отправлять пароли в URL-адресах в будущем. Спасибо за помощь! –
Вы правы «о req.query» - извините. 'req.params' для маршрутов параметров, таких как'/users /: userId'. 'req.params.userId' будет содержать идентификатор пользователя. Я исправлю свой ответ. –