我正在创建一个新的示例应用程序,try 通过Mongoose连接到MongoDB数据库.

我在我的service.js文件中创建了一个新的模式,但是当我运行nodemon app.js:"ReferenceError: Schema is not defined"时,我得到了以下错误

App.js code:

var http = require('http');
var express = require('express');
var serials = require('./service');
var app = express();
var mongoose = require('mongoose');


var port = 4000;
app.listen(port);

mongoose.connect('mongodb://localhost:27017/serialnumbers')

app.get('/api/serials',function(req,res){
    serials.getSerial(req, res, function(err, data) {
        res.send(data);
    });
});

Service.js code:

var mongoose = require('mongoose');

var serialSchema = new Schema({
    serial: {type: String},
    game: {type: String},
    date: {type: Date, default: Date.now},
});
mongoose.model('serials', serialSchema);

exports.getSerial = function(req,res,cb) {
    mongoose.model('serials').find(function(err,data) {
        cb(err,data);
    });
};

我在StackOverflow上看到了一个答案,提到它可能是mongoose 的版本.但是npm list给了我这个:

在此处输入图像描述

知道我做错了什么吗?

推荐答案

准确地说,在你的Service.js中,Schema是多少?您没有名为Schema的对象.

...
var serialSchema = new Schema({
                       ^^^^^^

把它改成mongoose.Schema就可以了.

Mongodb相关问答推荐

Spring Data MongoDB中的@ Transactions(+测试容器)

如何使用MongoDB对子文档进行条件投影?

在服务器上部署后端时判断??=默认判断

如何使用内部数组中的值更新文档

如何从集合中移除所有匹配的数组项?

Mongo 聚合将 $sort 与 $geoNear 结合使用

Spring Boot 升级后未映射 Mongo 模板结果

MongoDb $filter,然后获取非重复计数

通过insertId MongoDB获取文档

$lookup 的参数必须是字符串

Spring Data + MongoDB GridFS 可以通过 Repository 访问吗?

MongoDB中的readPreference和readConcern有什么区别?

.save() 不是函数 Mongoose

Flask and Mongo

从性能Angular 来看 MongoDB 嵌入式与参考

Mongoose 连接认证失败

使用 Spring Security + Spring 数据 + MongoDB 进行身份验证

我在更新中对 $set 和 $inc 做错了什么

show dbs 给出Not Authorized to execute command错误

MongoDB聚合框架的索引优化