gpt4 book ai didi

javascript - 类型错误 : Cannot read property 'find' of undefined with mongoose

转载 作者:行者123 更新时间:2023-11-30 09:33:22 26 4
gpt4 key购买 nike

我看到了一些类似我的问题,但找不到任何有效的解决方案,所以我想问一下。

我正在尝试从我的数据库中提取所有数据,以便我可以在我的应用程序中选择其中的一部分。我的数据库工作正常,但是当我尝试提取图片时失败并一直给我这个错误并且似乎也没有从数据库接收数据:

TypeError: Cannot read property 'find' of undefined

我安装了 mongoose 并且一切都已连接,所以我不明白为什么它无法识别 find 属性。如果有人有任何想法,我的代码如下。

// Dependencies
var express = require("express");
var bodyParser = require("body-parser");
var mongoose = require("mongoose");
var exphbs = require("express-handlebars");
var request = require("request");

// var weapons = require("./weapons.js");

// Set mongoose to leverage built in JavaScript ES6 Promises
mongoose.Promise = Promise;


// Initialize Express
var app = express();

// Use morgan and body parser with our app
app.use(bodyParser.urlencoded({
extended: false
}));

// Make public a static dir
app.use(express.static(__dirname + "/public"));

app.engine("handlebars", exphbs({ defaultLayout: "main" }));
app.set("view engine", "handlebars");

// Database configuration with mongoose
mongoose.connect("mongodb://localhost/weaponsdb");
var db = mongoose.connection;

// Show any mongoose errors
db.on("error", function(error) {
console.log("Mongoose Error: ", error);
});

// Once logged in to the db through mongoose, log a success message
db.once("open", function() {
console.log("Mongoose connection successful.");
});

//routes to home page

app.get('/', function(req, res, next){

res.render("index",{ title: 'Express' });

});

app.get('/app', function(req, res, next){

res.render("app",{ layout: 'applayout' });

});

app.get("/all", function(req, res) {

// Query: In our database, go to the weapon collection, then "find" everything
db.weapon.find({}, function(error, found) {

// Log any errors if the server encounters one
if (error) {
console.log(error);
}
// Otherwise, send the result of this query to the browser
else {
res.json(found);
}
});
});

$.getJSON("/all", function(data) {
console.log(data)
// For each entry of that json...
for (var i = 0; i < data.length; i++) {
// Append each of the weapons' properties to the table
$("#results").append("<img src = " + data[i].Picture + " />");
}
});

最佳答案

如果您正在使用 mongoose,您应该为您的集合定义一个schema,然后您可以引用该schema:

var weaponSchema = mongoose.Schema({
.... your model definition here ....
});

var Weapon = mongoose.model('weapon', weaponSchema);

比你能做的:

Weapon.find({})........

关于javascript - 类型错误 : Cannot read property 'find' of undefined with mongoose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44999944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com