Значения не сохраняются в mongodb - PullRequest
0 голосов
/ 30 мая 2018

Я следую этому руководству , чтобы настроить простое приложение Angular 6 / ExpressJS / mongoDb.Мне пришлось внести некоторые изменения на стороне ExpressJS, потому что я хотел запустить Angular в среде разработки.

Моя проблема в том, что когда я сохраняю книгу из своего приложения, «что-то» происходит.Новая запись вставлена ​​в mongoDb.Это журнал консоли:

{
    author: "4"
    description: "4",     
    isbn: "4", 
    published_year: "4",
    publisher: "4",    
    title: "4", 
}

Из функции formSubmit:

onFormSubmit(form:NgForm) {
  console.log(form);
  this.api.postBook(form)
    .subscribe(res => {
        let id = res['_id'];
        this.router.navigate(['/book-details', id]);
      }, (err) => {
        console.log(err);
      });
}

Это также передается в функцию postBook в службе API.

Похоже, что данные правильно вставляются в форму и передаются в ExpressJS.

Когда я запускаю curl -i -H "Accept: application/json" localhost:3000/api Я получаю результаты обратно:

[
    {"_id":"5b0e4f1dc547e5164c08acab","updated_date":"2018-05-30T07:13:33.050Z","__v":0},
    {"_id":"5b0e4fe74d3d0b15f44ed717","updated_date":"2018-05-30T07:16:55.392Z","__v":0},
    {"_id":"5b0e52c0b0710433b0986864","updated_date":"2018-05-30T07:29:04.551Z","__v":0},
    {"_id":"5b0e5356b0710433b0986865","updated_date":"2018-05-30T07:31:34.290Z","__v":0}
]

Но, как вы можете видеть, данные из внешнего интерфейса не сохраняются в базе данных.

Это моя модель Book.js:

const express = require('express')
const app = express()
const mongoose = require('mongoose');
const apiRouter = require('./routes/book');
const logger = require('morgan');

mongoose.connect('mongodb://localhost/movieseat', { promiseLibrary: require('bluebird') })
  .then(() =>  console.log('connection successful'))
  .catch((err) => console.error(err));

app.use(logger('dev'));  
app.use(express.json());
app.use('/api', apiRouter);
app.use(express.urlencoded({ extended: false }));
app.listen(3000, () => console.log('Example app listening on port 3000!'))

module.exports = app;

Похоже, у ExpressJS возникла проблема со сбором / хранением данных из внешнего интерфейса.Любые идеи о том, почему это или как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...