model.find不是函数



我正在尝试用猫鼬学习node.js。只需从数据库中读取并在浏览器中显示结果。我有index.js,在那里我将模式中的模型编译为

var mlink = mongoose.model('mlink',mlinkSchema)

然后我导出了它,以便在server.js文件中使用它作为

module.exports = mongoose.model('mlink',mlinkschema);

在server.js下,我需要它作为

const mlink = require(__dirname, "../Scripts/index.js");

现在,我正在使用下面的快速路由器

const express = require('express');
const app = express();
const router = express.Router();
app.use("/", router);
router.route("/Scripts").get(function(req,res){
mlink.find({},function(err, result){
if (err) {
res.send(err);
}
else {
res.send(result);
}
});
});

在这里我不断得到错误,因为mlink.find不是一个函数。请帮帮我,我被卡住了。

而不是这个

module.exports = mongoose.model('mlink',mlinkschema);

应该是

module.exports = mlink;

如果您有比更正确的型号

module.exports = mongoose.model('mlink',mlinkSchema);

应该工作(你在mlinkSchema中有一个拼写错误,它需要一个大写的S(

你可以导入这样的模型:

const mlink = mongoose.model("mlink");

从MongoDB获取数据很耗时——它应该是一个异步函数

router.route("/Scripts").get(async function(req,res){
await mlink.find({},function(err, result){
if (err) {
res.send(err);
}
else {
res.send(result);
}
});

最新更新