【问题标题】:TypeError: find is not a functionTypeError: find 不是一个函数
【发布时间】:2023-01-11 03:12:49
【问题描述】:

无法弄清楚为什么它的“查找不是功能”我是新手 在 Nodejs 和 Mongodb。想使用 ejs 显示数据库文件请帮帮我。我检查了与数据库的连接,没问题。我还阅读了其他一些问题,但对我的问题有任何合适的答案。它显示类型错误:clgModel.find 不是函数

索引.js

var express = require('express');
    var clgModel = require('../modules/engg_clg');
    var router = express.Router();
    var college = clgModel.find({});
    
    
    /* GET home page. */
    router.get('/', function(req, res, next) {
      college.exec(function(err, data) {
    
        if (err) throw err;
        res.render('index', {
          title: 'Engineering College Rank',
          records: data
        });
      });
    
    });
    
    module.exports = router;

**

engg.js

**

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/Engg_clg_rnk', {
  useNewUrlParser: true
});
var conn = mongoose.connection;

var collegeSchema = new mongoose.Schema({

  id: Number,
  City: String,
  Institute_ID: String,
  Name: String,
  Rank: Number,
  Score: Number,
  State: String`enter code here`

});


var collegeModel = mongoose.model('Employee', collegeSchema);
module.export = collegeModel;

EJS

以表格形式显示数据库文档

<thead>
    <tr>
      <th scope="col">City</th>
      <th scope="col">Institute_ID</th>
      <th scope="col">Name</th>
      <th scope="col">Rank</th>
      <th scope="col">Score</th>
      <th scope="col">State</th>
    </tr>
  </thead>
  <% records.forEach(function(row){%>
  <tr>

    <td><%= row.City %></td>
    <td><%= row.Institute_ID %></td>
    <td><%= row.Name %></td>
    <td><%= row.Rank %></td>
    <td><%= row.Score %></td>
    <td><%= row.State %></td>



  </tr>

  <% }) %>
</table>

【问题讨论】:

标签: node.js mongodb mongoose


【解决方案1】:

创建2个文件。 collegeModel.jsindex.js

  1. 将此代码粘贴到collegeModel.js

    var mongoose = require("mongoose")
    
    const collegeSchema = new mongoose.Schema({
      id: {
        type: Number
      },
      City: {
        type: String
      },
      Institute_ID: {
        type: String
      },
      Name: {
        type: String
      },
      Rank: {
        type: Number
      },
      Score: {
        type: Number
      },
      State: {
        type: String
      }
    })
    
    module.exports = mongoose.model("Employee", collegeSchema)
    1. index.js中添加此代码

    const collegeModel = require("./collegeModel.js")
    
    router.get('/', async function(req, res, next) {
    
      const result = await collegeModel.find().lean()
    
      if (result) {
        res.render('index', {
          title: 'Engineering College Rank',
          records: data
        });
    
      } else {
        console.log("ERROR")
      }
    
    });

【讨论】:

    【解决方案2】:

    你必须从对象中导入它

    const { collegeModel } = require("../models/recipe.model");
    

    或者

       const clgModel = require('../modules/engg_clg');
    
       const college = clgModel.collegeModel.find({});
    

    【讨论】:

      【解决方案3】:

      您正在使用 module.export = collegeModel;在你的 engg.js 中,所以这是一个类型错误,只需输入一个 's' 并写下它: module.exports = collegeModel;

      【讨论】:

        猜你喜欢
        • 2019-08-04
        • 2016-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-12
        • 2018-04-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多