Как извлечь данные из mongodb - PullRequest
0 голосов
/ 16 января 2019

Я не могу получить данные из mongodb.

Проблема в том, что код Article.find({}); не работает для извлечения данных из базы данных.

Я использую WebStrom IDE. Я хочу получить все данные из базы данных.

Я публикую свой код здесь, пожалуйста, помогите мне найти ошибку в моем коде

Заранее спасибо.

database.js

module.exports = {
    database:'mongodb://localhost:27017/shopping_site',
}

модель / article.js

let mongoose = require('mongoose');

// Article Schema
let articleSchema = mongoose.Schema({
    title:{
        type: String,
        required: true
    },
    author:{
        type: String,
        required: true
    },
    body:{
        type: String,
        required: true
    }
});

let Article = module.exports = mongoose.model('Article', articleSchema);

index.pug

extends layout

block content
  h1 #{title}
  ul.list-group
    each article, i in articles
      li.list-group-item= article.title

app.js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var mongoose = require('mongoose');
var config = require('./config/database');
var bodyParser = require('body-parser');

var app = express();

// Bring in Models
let Article = require('./models/article');

//database connectionkjvhgc
mongoose.connect(config.database);
let db = mongoose.connection;

// Check connection
db.once('open', function(){
  console.log('Connected to MongoDB');
});

// Check for DB errors
db.on('error', function(err){
  console.log(err);
});

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

// Home Route
app.get('/', function(req, res){
  Article.find({}, function(err, articles){
    if(err){
      console.log(err);
    } else {
      res.render('index', {
        title:'Articles',
        articles: articles
      });
    }
  });
});

//set routes


// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

//body-parser
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Сначала давайте введем вашу модель,

require('./models/article');

создать переменную для модели

const Article = mongoose.model('Article');

Далее показывать ваши статьи из db

app.get('/', (req, res) => {
    Article.find({}).then(Article => {
        res.render('index', {Article:Article});
    }).catch(err => console.log(err));
});

Надеюсь, это поможет

0 голосов
/ 16 января 2019

переместить код подключения к базе данных в db.js и импортировать то же самое в article.js

db.js

let uristring = <your connection string or import database.js>;

mongoose.connect(uristring);

// When successfully connected
mongoose.connection.on('connected', function() {
  console.log('Mongoose connection open to cluster');
});

// If the connection throws an error
mongoose.connection.on('error', function(err) {
  console.log('Mongoose connection error: ' + err);
});

// When the connection is disconnected
mongoose.connection.on('disconnected', function() {
  console.log('Mongoose connection disconnected');
});

// When the connection is open
mongoose.connection.on('open', function() {
  console.log('Mongoose connection is open');
});
module.exports = mongoose;

тогда в article.js

const mongoose = require ('mongoose');

требуется ( '../ дб');

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