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中后无法获取数据库中的记录?

Mongoose - 无法检索快速路线中的虚拟字段

无法使用 mongoose、Node.js 将数据插入到 mongoDB 中的 Document 字段中

mongoose返回值无法修改

无法更新mongodb中的数据