Mongoose,无法打印数据库中的产品
Posted
技术标签:
【中文标题】Mongoose,无法打印数据库中的产品【英文标题】:Mongoose, can't print products from database 【发布时间】:2017-11-28 13:46:00 【问题描述】:我在从数据库打印控制台.log 或 res.json 中的项目时遇到问题。
我做错了什么
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test');
var Schema = mongoose.Schema;
var productSchema = new Schema(
title: String,
price: Number
);
var product = mongoose.model('product, productSchema');
mongoose.connect(db);
var db = 'mongodb://localhost/product';
router.get('/books', function(req, res)
console.log('getting all products');
product.find()
.exec(function(err, product)
if (err)
res.send('errror');
else
console.log(product);
res.json(product);
)
);
数据库产品名称为:db.product
谢谢
错误: C:\Users\Turqus\Desktop\node\products\node_modules\mongoose\lib\index.js:382 抛出新的 mongoose.Error.MissingSchemaError(name); ^ MongooseError:模式尚未注册模型“产品,productSchema”。 使用 mongoose.model(name, schema) 在 Mongoose.model (C:\Users\Turqus\Desktop\node\products\node_modules\mongoose\lib\index.js:382:13)
【问题讨论】:
【参考方案1】:你必须先建立数据库连接。
改一下
var product = mongoose.model('product, productSchema');
到
var product = mongoose.model('product', productSchema);
mongoose.model()
接受两个参数,您的模型所针对的集合的名称和第二个参数Schema
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test');
var Schema = mongoose.Schema;
var productSchema = new Schema(
title: String,
price: Number
);
var product = mongoose.model('product', 'productSchema');
router.get('/books', function(req, res)
console.log('getting all products');
product.find()
.exec(function(err, product)
if (err)
res.send('errror');
else
console.log(product);
res.json(product);
)
);
【讨论】:
你必须先建立数据库连接,这将有助于***.com/questions/42468201/… 好的,谢谢,我有问题,如何更改基础,因为我什么都没下载看gist.github.com/anonymous/a0e3523252560a18adfaa03f2895d7f8 数据库名称是什么,其数据标题为:wisnia as in gist 名称是 db.product 检查我的评论试试那个代码gist.github.com/anonymous/88e46ba9130316fab9b8b2d1f97bba8d以上是关于Mongoose,无法打印数据库中的产品的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose:如何使用来自模式的数据(产品值)使用方法填充另一个模式()中的字段?
为啥我用mongoose将它保存在mongoDB中后无法获取数据库中的记录?