[英]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.