查询mongodb数据时在nodejs中出错?

时间:2018-01-20 15:37:44

标签: javascript node.js mongodb mongoose

我在nodejs控制台中遇到错误(请参阅屏幕截图以获得更多说明)。

在matches.js中:

const mongoose = require('mongoose');

let Schema = mongoose.Schema;

const matchSchema = new Schema({

    match_id:{
        type:Number;     <---- line 8
        required:true;
    },

    season:{
        type:Number;
        required:true;
    }

.....
.....
});

const matches = mongoose.model('matches', matchSchema);

module.exports = matches;

// Get matches
module.exports.getmatches = (callback, limit) => {
    matches.find(callback).limit(limit);
}

在app.js中:

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');

const app = express();

matches = require('./models/matches');

mongoose.connection.openUri('mongodb://localhost:27017/IPL');
const db = mongoose.connection;

app.get('/home', (req, res) => {
    matches.getmatches((err, match) => {

        if(err){
            throw err;
        }

        res.json(matches);

    });
});

app.listen('5000');
console.log('Running on port 5000....')

我创建了包含matches.js的模型文件夹我试图从mongodb访问数据以及何时在API端点上显示为JSON数据,即localhost://5000/home

enter image description here

1 个答案:

答案 0 :(得分:3)

这是一个基本的JavaScript Object声明错误。 JSON对象应该如下所示,

{
   match_id: {
     type: Number,    //see the comma there?
     required: true
   }
}

您使用,而不是使用;,这会引发语法错误。改为使用它,

const matchSchema = new Schema({
    match_id: {
        type:Number,
        required:true
    },
    season: {
        type:Number,
        required:true
    }
    .....
    .....
});

此外,您的getmatches函数需要将限制作为第二个参数传递,您还需要在代码中传递它。