繁体   English   中英

如何从mongodb中检索数据

[英]How to retrieve data from mongodb

我无法从 mongodb 检索数据。

问题是:代码Article.find({}); 无法从数据库中检索数据。

我正在使用 WebStorm IDE。 我想从数据库中检索所有数据。

请帮我找出代码中的错误。

数据库.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);

索引.pug

extends layout

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

应用程序.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;

将数据库连接代码移入 db.js 并在 article.js 中导入相同的代码

数据库.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');

要求('../db');

首先让我们引入你的模型,

require('./models/article');

为模型创建一个变量

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

Next 显示你的文章来自 db

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

我希望这有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM