我正在尝试用猫鼬学习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);
}
});