как получить коллекцию монго с успокоительным API - PullRequest
0 голосов
/ 30 мая 2018

Простите, я новичок в этом.Я не уверен, верна ли моя терминология, но я пытаюсь выяснить, как извлечь мою коллекцию mongodb, называемую «items», из моего успокоительного API.Мне нужно собрать всю коллекцию данных, а не только один запрос, и мне не повезло найти хороший учебник.

Я проверил свой маршрут с помощью стандартной команды res.send ('random text'), поэтому я знаю, что мой маршрут работает.Но когда я пытаюсь настроить свои функции для извлечения моих коллекций и отображения данных, ничего не происходит.Я знаю, что моя функция getList, вероятно, неверна, и у меня есть ощущение, что мой список маршрутов тоже неверен, но я не знаю, где ошибки.

server.js

const express = require('express');
const app = express();

const path = require('path');           
const bodyParser = require('body-parser');   
const cors = require('cors');
const mongoose = require('mongoose');   
const config = require('./config/database');

const todoList = require('./routes/list');    

const port = 3000;                            //sets our local port to 3000

mongoose.connect(config.database);
mongoose.connection.on('connected', () => {
  console.log('Connected to database ' + config.database);
});

mongoose.connection.on('error', (err) => {
  console.log('Database error: ' + err);
});

app.use(cors());                            
app.use(bodyParser.json());         

app.use('/todos', todoList);                

app.listen(port, () => {
  console.log('Server started on port ' + port);
});

models / list.js

const mongoose = require('mongoose');
const config = require('../config/database');


//user schema
const UserSchema = mongoose.Schema({
  item: {
    type: String
  },
  completed: {
    type: Boolean
  }
});

const Item = module.exports = mongoose.model('Item', UserSchema);

module.exports.getLists = function(callback) {
  Item.find({callback});
}

routs / list.js

const express = require('express');
const router = express.Router();
const config = require('../config/database');
const List = require('../models/list');

//get all items in to do list
router.get('/lists', (req, res, next) => {
  List.getLists((err, todos) => {
    if(err) {
      res.json({success: false, msg: 'No list found'});
    } else {
      res.json({
        success: true,
        list:
          item: todos.item,
          completed: todos.completed
      });
    }
  });
});

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Я понял это.Я был очень близок, но мне просто нужно было лучше понять, как module.exports использует параметры и как работают обратные вызовы.Хотя ваш ответ был не тем, что я искал, вы заставили меня найти свое решение.Спасибо за ответ!

Требуется изменить мой код из следующих

models / list.ts

module.exports.getLists = function(callback) {
  Item.find({callback});
}

routs / list.ts

//get all items in to do list
router.get('/lists', (req, res, next) => {
  List.getLists((err, todos) => {
    if(err) {
      res.json({success: false, msg: 'No list found'});
    } else {
      res.json({
        success: true,
        list:
          item: todos.item,
          completed: todos.completed
      });
    }
  });
});

На это:

models / list.ts

module.exports.getLists = function(callback) {
  const list = {}
  Item.find(list, callback);
}

rout.list.ts

//get all items in to do list
router.get('/lists', (req, res, next) => {
  List.getLists((err, todos) => {
    if(err) {
      res.json({success: false, msg: 'No list found'});
    } else {
      res.json({
        success: true,
        todos
      });
    }
  });
});
0 голосов
/ 31 мая 2018

const express = require('express');
const router = express.Router();
const config = require('../config/database');
const List = require('../models/list');

//get all items in to do list
router.get('/lists', (req, res, next) => {
  List.find({},(err, todos) => {
    if(err) {
      res.json({success: false, msg: 'No list found'});
    } else {
      res.json({
        success: true,
        list:
          item: todos.item,
          completed: todos.completed
      });
    }
  });
});

Похоже, вы используете мангуста.Так что просто замените getLists на find, и, поскольку вам нужно найти все, оставьте предложение фильтра пустым.

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