Sails.js 블로그 애플리케이션에 주석 기능을 추가하려고합니다. 그러나 컨트롤러 동작을 올바르게 작성하는 것 같지 않습니다.Sails.js에서 POST 요청을 올바르게 처리 할 수 없습니다.
의견 양식을 제출하면 페이지가 다시로드되기 시작하지만 다시로드하지 않습니다.
여기 내 컨트롤러 코드입니다 :
const gravatar = require('gravatar');
module.exports = {
blog: (req, res) => {
Post.find({}).exec((err, posts) => {
if (err) {
res.send(500, { error: 'Database Error' });
}
res.view('all-posts', { posts });
});
},
singlePost: (req, res) => {
Post.findOneBySlug(req.params.slug).exec((err, post) => {
if (err) {
res.send(500, { error: 'Database Error' });
}
res.view('single-post', {
post,
gravatar: gravatar.url
});
});
},
addComment: (req, res) => {
const {
name, comment, email,
url, slug,
} = req.allParams();
Post.findOneBySlug(slug).exec((err, post) => {
if (err) {
return res.send(500, { error: 'Database Error' });
Comment.create({
body: comment, name, email, website: url
}).exec((error, comment) => {
if (error) {
return res.send(500, { error: 'Database Error' });
}
console.log(comment);
post.comments.addComment({slug, comment});
post.save();
res.redirect(`/${slug}`);
});
}
});
return false;
},
};
그리고 여기 내 routes.js
파일입니다 :
module.exports.routes = {
'get /blog': 'BlogController.blog',
'get /:slug': 'BlogController.singlePost',
'post /:slug/new-comment': 'BlogController.addComment'
};
그리고 이것은 내 모델 Post.js
module.exports = {
identity: 'Post',
attributes: {
title: {
type: 'string',
required: true,
unique: true
},
body: {
type: 'string'
},
categories: {
type: 'string',
required: true
},
imageUrl: {
type: 'string'
},
comments: {
collection: 'Comment',
via: 'post'
},
slug: {
type: 'slug',
from: 'title',
blacklist: ['search', 'blog', 'contacts']
}
},
addComment: (options, cb) => {
Post.findOneBySlug(options.slug).exec((err, post) => {
if (err) return cb(err);
if (!post) return cb(new Error('Post not found.'));
post.comments.add(options.comment);
post.save(cb);
})
},
connection: 'mongodb'
};
, 때 I 부 /:slug
페이지의 주석 형식을 사용하면 실제로 페이지를 다시로드하려고 시도하지 않습니다. 그리고 데이터베이스에는 아무 것도 저장되지 않습니다.
양식 매개 변수가 양식에서 전송되므로 클라이언트 측에서 모든 것이 잘되어야합니다.
어떻게이 게시물 요청에 올바르게 접근합니까?
'addComment' 작업 (문제의 업데이트 된 코드 참조)을 업데이트했지만 문제가 지속됩니다. –
코드를 잘못 변경했습니다. 업데이트 된 답변을 확인하십시오. – alexmac
유효하지 않은 매개 변수는 무엇을 의미합니까? 'addComment' 액션 안에서'req.allParams()'객체는 모델을 저장하는데 필요한 모든 데이터를 포함합니다. –