Средний стек не может публиковать на mongodb, похоже, ничего не делает, ошибка 0 - PullRequest
0 голосов
/ 29 ноября 2018

Не могу найти, что не так с кодом.То, что я хочу сделать, - это иметь возможность публиковать через введенные данные, а затем, нажимая кнопку, они должны публиковать (создавать) и сохранять в mongoDB.Вот мой код до сих пор.Любая помощь приветствуется!

HTML (Примечание: имя категории работает):

<section class="wrapper" *ngIf="category">

  <h2>Create a new post</h2>
  <p>within the category <span class="category">{{ category.name }}</span> </p>

  <form>
    <input type="text" name="title" placeholder="Title" required autofocus [(ngModel)]="title">
    <input type="hidden" name="category" value="{{ category._id }}">
    <textarea name="content" placeholder="Post content" required [(ngModel)]="content" ></textarea>
    <button (click)="createPost()">Publicera</button>
  </form>
  </section>

Файл компонента ts:

export class CreateComponent implements OnInit {
  category: Category;
  title: String = '';
  content: String = '';

  constructor(
    private route: ActivatedRoute,
    private appService: AppService
  ) { }

  ngOnInit() {
    let _id = this.route.snapshot.paramMap.get('_id');

    this.appService.getCategory(_id)
    .subscribe(data =>this.category=data);
  }

  createPost(){
    let post = new Post();
    post.title = this.title;
    post.content = this.content;
    this.appService.createPost(post);
  }

}

Сервисный файл:

  createPost(post: Post){
      let payload = {
        "title": post.title,
        "content": post.content
      }
      this.http.post(this.apiUrl+"/post/", payload, {responseType: 'text'}).subscribe(response => {});
  }

Файл сервера (server.js)

app.post('/api/post', (req, res) => {
    var today = new Date();
    var newPostData = { userId: req.body.userId, category: req.body.category, postId: req.body.postId, commentId: req.body.commentId, title: req.body.title, content: req.body.content, publishedDate: today, editedDate: null };
    var post = new Post(newPostData, function(err) {
    });
    post.save();
});

1 Ответ

0 голосов
/ 29 ноября 2018

Я думаю, что вы должны добавить обратный вызов в функцию сохранения, проверьте документ здесь .

var newPostData = { userId: req.body.userId, category: req.body.category, postId: req.body.postId, commentId: req.body.commentId, title: req.body.title, content: req.body.content, publishedDate: today, editedDate: null };
var post = new Post(newPostData);
post .save(function (err) {
    if (err) {console.log(err) return res.send(err)};
        // saved!
});
...