【发布时间】:2019-12-04 23:18:39
【问题描述】:
我正在尝试创建一个小型测试应用程序来学习编码,但在尝试在我创建的 mongodb 数据库中显示虚拟信息时卡住了。
我已经尝试了我能想到的一切,但无论我做什么,它都告诉我“客户”(这是一个具有已定义架构的变量)没有定义。如果它有任何区别,数据库位于一个单独的目录中,但我假设因为我可以创建我应该能够阅读。
如果有任何措辞不当或不清楚的地方,我深表歉意,大约一个月前,我从没有任何编程知识开始,所以我可能试图一次学习太多东西。
let express = require("express");
let mongoose = require("mongoose");
let bodyParser = require("body-parser");
let app = express();
app.set("view engine", "ejs");
mongoose.connect("mongodb://localhost:27017/customers");
let customerSchema = new mongoose.Schema({
labName: String,
labPhone: String,
labAddress: String,
labBranches: String,
labEquipment: String
});
const Customer = mongoose.model("Customer", customerSchema);
app.get("/test", function(req, res) {
Customer.find({}, function(err, allCustomers) {
if(err){
console.log(err)
} else {
res.render("customer", {customers:allCustomers});
}
})
});
app.listen(3000, function() {
console.log("Server listening on port 3000");
});
预期的结果是将我在数据库中创建的少数客户粘贴到屏幕上,以确保我与数据库建立了有效的连接,但这是我得到的错误。
Error: Failed to lookup view "customer" in views directory "D:\CRM\NeurotronicsCRM\views"
at Function.render (D:\CRM\NeurotronicsCRM\node_modules\express\lib\application.js:580:17)
at ServerResponse.render (D:\CRM\NeurotronicsCRM\node_modules\express\lib\response.js:1012:7)
at D:\CRM\NeurotronicsCRM\app.js:50:11
at D:\CRM\NeurotronicsCRM\node_modules\mongoose\lib\model.js:4567:16
at D:\CRM\NeurotronicsCRM\node_modules\mongoose\lib\query.js:4297:12
at process.nextTick (D:\CRM\NeurotronicsCRM\node_modules\mongoose\lib\helpers\query\completeMany.js:35:39)
at process._tickCallback (internal/process/next_tick.js:61:11)
我不明白为什么它引用客户并在视图目录中查找。我没有问题 Customer.create();并添加虚拟数据。
【问题讨论】:
-
哪一行引发了这个错误?
-
你正在使用 res.render("customer") 因为那一行你得到了错误
-
使用 res.send({ allCustomers})
-
我在哪里使用 res.send({allCustomer})?
标签: javascript html node.js mongodb ejs