繁体   English   中英

收到一条错误消息,指出未定义声明的变量

[英]Getting an error stating that a declared variable is not defined

我试图创建一个小的测试应用程序来学习编码,并且在尝试在我创建的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)

我不明白为什么它引用客户并在views目录中查找它。 我没有问题Customer.create(); 并添加虚拟数据。

我能够弄清楚,在res.render中,回调的第一部分应该是我们正在加载的页面。 我的错。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM