Pro.find不是猫鼬模型导出中的函数错误

时间:2018-09-06 13:29:23

标签: node.js mongodb express mongoose

这是我的server.js,可在其中运行代码以通过localhost:7000初始化服务器。我运行的路线是product.js:

产品路线:

const express = require('express');
const router = express.Router();

const Pro = require('../model/Product');

router.get('/', (req, res) => {
    Pro.find()
    .sort({ entrydate: -1 })
    .then(product => res.json(product));
});
router.post('/product', ( req, res ) => {
    res.send('Posting a response')
});
module.exports = router;

哪个错误:

  

TypeError:Product.route不是函数

产品型号:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const ProductSchema = new Schema({
  // Objects and Properties are here
});

const Product = mongoose.model('products', ProductSchema);
module.exports = { Product };

如何摆脱困境?

3 个答案:

答案 0 :(得分:4)

您要在对象中导出<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css"> <script type="text/javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script> <script type="text/javascript"> $(document).ready( function () { $('#userlist').DataTable(); } ); </script>

var oc = $('#chartContainerId').orgchart({
  ...

  'initCompleted': function() {
    oc.hideChildren($('#chart-container').find('.node:first'));
  }
});

因此,当您尝试查找产品时,您正在做的事情是:

Product

这可能是您不想要的。相反:

module.exports = { Product };

或代替创建一个{ Product }.find(); 变量:

module.exports = Product;

两者都应仅导出Product模型并解决问题。

答案 1 :(得分:0)

了解有关使用JavaScript进行销毁的信息。 您可以通过

const {Product} = require('../model/Product'); //recommended

const any_variable_name = require('../model/Product').Product;

module.exports = variable_name也有帮助,但是如果要导出多个变量,则必须多次写整行。而module.exports = {v1,v2,v3...vn}更具可读性

答案 2 :(得分:0)

在您的产品路线中使用 async