Can't get data for req.body with mean stack
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
Hey I can't seem to get any results whilst using the req.body. Trying to get out the data from my mongodbdatabase to json format Here is my code:
My server file:
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
});
});
Service file:
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts");
}
component.ts
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
javascript
add a comment |
Hey I can't seem to get any results whilst using the req.body. Trying to get out the data from my mongodbdatabase to json format Here is my code:
My server file:
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
});
});
Service file:
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts");
}
component.ts
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
javascript
are you sure that you need get instead of post?
– Ishikawa Yoshi
Nov 23 '18 at 14:10
your api method is get method and you want _id in req.body. which is wrong
– Yogesh.Kathayat
Nov 23 '18 at 14:18
either change you get request to post in server file and service file both or try to pass _id in req.params or req.query
– Yogesh.Kathayat
Nov 23 '18 at 14:19
You should follow the REST architecture and pass theidin thereq.params.idThat is, your url should bethis.apiUrl + "/category/posts/" + _id. Also, your are currently never passing over the _id in any way to the server.
– Jonathan Hamel
Nov 23 '18 at 20:48
add a comment |
Hey I can't seem to get any results whilst using the req.body. Trying to get out the data from my mongodbdatabase to json format Here is my code:
My server file:
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
});
});
Service file:
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts");
}
component.ts
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
javascript
Hey I can't seem to get any results whilst using the req.body. Trying to get out the data from my mongodbdatabase to json format Here is my code:
My server file:
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
});
});
Service file:
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts");
}
component.ts
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
javascript
javascript
edited Nov 23 '18 at 20:32
Neil Lunn
101k23179187
101k23179187
asked Nov 23 '18 at 14:02
testerdude55testerdude55
1
1
are you sure that you need get instead of post?
– Ishikawa Yoshi
Nov 23 '18 at 14:10
your api method is get method and you want _id in req.body. which is wrong
– Yogesh.Kathayat
Nov 23 '18 at 14:18
either change you get request to post in server file and service file both or try to pass _id in req.params or req.query
– Yogesh.Kathayat
Nov 23 '18 at 14:19
You should follow the REST architecture and pass theidin thereq.params.idThat is, your url should bethis.apiUrl + "/category/posts/" + _id. Also, your are currently never passing over the _id in any way to the server.
– Jonathan Hamel
Nov 23 '18 at 20:48
add a comment |
are you sure that you need get instead of post?
– Ishikawa Yoshi
Nov 23 '18 at 14:10
your api method is get method and you want _id in req.body. which is wrong
– Yogesh.Kathayat
Nov 23 '18 at 14:18
either change you get request to post in server file and service file both or try to pass _id in req.params or req.query
– Yogesh.Kathayat
Nov 23 '18 at 14:19
You should follow the REST architecture and pass theidin thereq.params.idThat is, your url should bethis.apiUrl + "/category/posts/" + _id. Also, your are currently never passing over the _id in any way to the server.
– Jonathan Hamel
Nov 23 '18 at 20:48
are you sure that you need get instead of post?
– Ishikawa Yoshi
Nov 23 '18 at 14:10
are you sure that you need get instead of post?
– Ishikawa Yoshi
Nov 23 '18 at 14:10
your api method is get method and you want _id in req.body. which is wrong
– Yogesh.Kathayat
Nov 23 '18 at 14:18
your api method is get method and you want _id in req.body. which is wrong
– Yogesh.Kathayat
Nov 23 '18 at 14:18
either change you get request to post in server file and service file both or try to pass _id in req.params or req.query
– Yogesh.Kathayat
Nov 23 '18 at 14:19
either change you get request to post in server file and service file both or try to pass _id in req.params or req.query
– Yogesh.Kathayat
Nov 23 '18 at 14:19
You should follow the REST architecture and pass the
id in the req.params.id That is, your url should be this.apiUrl + "/category/posts/" + _id. Also, your are currently never passing over the _id in any way to the server.– Jonathan Hamel
Nov 23 '18 at 20:48
You should follow the REST architecture and pass the
id in the req.params.id That is, your url should be this.apiUrl + "/category/posts/" + _id. Also, your are currently never passing over the _id in any way to the server.– Jonathan Hamel
Nov 23 '18 at 20:48
add a comment |
2 Answers
2
active
oldest
votes
your api method is get method and you want _id in req.body. which is wrong.
you need to either change you get request to post in server file and service file both or try to pass _id in req.params or req.query:-
If you pass _id as req.query :-
your server code will be like:-
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.query._id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts"+'?_id='+_id);
}
component.ts will be same.
and if you want to use post method to check for req.body then your code will be changed as following:-
your server code will be like:-
app.post('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
}); });
service file
getPosts(_id): Observable<Post>{
return this.http.post<Post>(this.apiUrl +"/category/posts",{_id:_id});
}
component.ts will be same.
add a comment |
Following REST architecture to get resources, you should pass the the _id in the get request parameters. You can also validate your id parameter making sure the passed id is a number using a simple regex pattern
Express route
app.get('/api/category/posts/:id(\d+)', (req, res) => {
Post.find({ categoryId: req.params.id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(`${this.apiUrl}/category/posts/${_id}`);
}
component file
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
As a good practice, you should also keep track of your subscriptions and unsubscribe from them when you are done or on component destroy, or use the first operator to unsubscribe after first subscription.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53448121%2fcant-get-data-for-req-body-with-mean-stack%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
your api method is get method and you want _id in req.body. which is wrong.
you need to either change you get request to post in server file and service file both or try to pass _id in req.params or req.query:-
If you pass _id as req.query :-
your server code will be like:-
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.query._id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts"+'?_id='+_id);
}
component.ts will be same.
and if you want to use post method to check for req.body then your code will be changed as following:-
your server code will be like:-
app.post('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
}); });
service file
getPosts(_id): Observable<Post>{
return this.http.post<Post>(this.apiUrl +"/category/posts",{_id:_id});
}
component.ts will be same.
add a comment |
your api method is get method and you want _id in req.body. which is wrong.
you need to either change you get request to post in server file and service file both or try to pass _id in req.params or req.query:-
If you pass _id as req.query :-
your server code will be like:-
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.query._id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts"+'?_id='+_id);
}
component.ts will be same.
and if you want to use post method to check for req.body then your code will be changed as following:-
your server code will be like:-
app.post('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
}); });
service file
getPosts(_id): Observable<Post>{
return this.http.post<Post>(this.apiUrl +"/category/posts",{_id:_id});
}
component.ts will be same.
add a comment |
your api method is get method and you want _id in req.body. which is wrong.
you need to either change you get request to post in server file and service file both or try to pass _id in req.params or req.query:-
If you pass _id as req.query :-
your server code will be like:-
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.query._id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts"+'?_id='+_id);
}
component.ts will be same.
and if you want to use post method to check for req.body then your code will be changed as following:-
your server code will be like:-
app.post('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
}); });
service file
getPosts(_id): Observable<Post>{
return this.http.post<Post>(this.apiUrl +"/category/posts",{_id:_id});
}
component.ts will be same.
your api method is get method and you want _id in req.body. which is wrong.
you need to either change you get request to post in server file and service file both or try to pass _id in req.params or req.query:-
If you pass _id as req.query :-
your server code will be like:-
app.get('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.query._id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(this.apiUrl +"/category/posts"+'?_id='+_id);
}
component.ts will be same.
and if you want to use post method to check for req.body then your code will be changed as following:-
your server code will be like:-
app.post('/api/category/posts', (req, res) => {
Post.find({ categoryId: req.body._id }, function(err, posts) {
res.json(posts);
}); });
service file
getPosts(_id): Observable<Post>{
return this.http.post<Post>(this.apiUrl +"/category/posts",{_id:_id});
}
component.ts will be same.
answered Nov 23 '18 at 14:24
Yogesh.KathayatYogesh.Kathayat
458411
458411
add a comment |
add a comment |
Following REST architecture to get resources, you should pass the the _id in the get request parameters. You can also validate your id parameter making sure the passed id is a number using a simple regex pattern
Express route
app.get('/api/category/posts/:id(\d+)', (req, res) => {
Post.find({ categoryId: req.params.id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(`${this.apiUrl}/category/posts/${_id}`);
}
component file
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
As a good practice, you should also keep track of your subscriptions and unsubscribe from them when you are done or on component destroy, or use the first operator to unsubscribe after first subscription.
add a comment |
Following REST architecture to get resources, you should pass the the _id in the get request parameters. You can also validate your id parameter making sure the passed id is a number using a simple regex pattern
Express route
app.get('/api/category/posts/:id(\d+)', (req, res) => {
Post.find({ categoryId: req.params.id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(`${this.apiUrl}/category/posts/${_id}`);
}
component file
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
As a good practice, you should also keep track of your subscriptions and unsubscribe from them when you are done or on component destroy, or use the first operator to unsubscribe after first subscription.
add a comment |
Following REST architecture to get resources, you should pass the the _id in the get request parameters. You can also validate your id parameter making sure the passed id is a number using a simple regex pattern
Express route
app.get('/api/category/posts/:id(\d+)', (req, res) => {
Post.find({ categoryId: req.params.id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(`${this.apiUrl}/category/posts/${_id}`);
}
component file
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
As a good practice, you should also keep track of your subscriptions and unsubscribe from them when you are done or on component destroy, or use the first operator to unsubscribe after first subscription.
Following REST architecture to get resources, you should pass the the _id in the get request parameters. You can also validate your id parameter making sure the passed id is a number using a simple regex pattern
Express route
app.get('/api/category/posts/:id(\d+)', (req, res) => {
Post.find({ categoryId: req.params.id }, function(err, posts) {
res.json(posts);
});
});
service file
getPosts(_id): Observable<Post>{
return this.http.get<Post>(`${this.apiUrl}/category/posts/${_id}`);
}
component file
this.appService.getPosts(_id)
.subscribe(data =>this.posts=data);
As a good practice, you should also keep track of your subscriptions and unsubscribe from them when you are done or on component destroy, or use the first operator to unsubscribe after first subscription.
answered Nov 23 '18 at 20:54
Jonathan HamelJonathan Hamel
789615
789615
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53448121%2fcant-get-data-for-req-body-with-mean-stack%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
are you sure that you need get instead of post?
– Ishikawa Yoshi
Nov 23 '18 at 14:10
your api method is get method and you want _id in req.body. which is wrong
– Yogesh.Kathayat
Nov 23 '18 at 14:18
either change you get request to post in server file and service file both or try to pass _id in req.params or req.query
– Yogesh.Kathayat
Nov 23 '18 at 14:19
You should follow the REST architecture and pass the
idin thereq.params.idThat is, your url should bethis.apiUrl + "/category/posts/" + _id. Also, your are currently never passing over the _id in any way to the server.– Jonathan Hamel
Nov 23 '18 at 20:48