ReferenceError:D:\nodejs\crud\views\employee\list.ejs:21 [英] ReferenceError: D:\nodejs\crud\views\employee\list.ejs:21

查看:66
本文介绍了ReferenceError:D:\nodejs\crud\views\employee\list.ejs:21的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

他试图使用ejs作为视图引擎从数据库(MongoDB)中获取数据,但显示错误:

hi m trying to get the data from database (MongoDB) using ejs as view-engine, but it shows error:


ReferenceError :D:\nodejs\crud\views\employee\list.ejs:21 ,,,,,,,,,,,,,,,,,,,,,,,,, 、、、、、、、、、、、、、、、、、、、、、、、、、、、 、、、、、、、、、、、、、、、、、、、、、、、、、、、 、、、、、、、、、、、、、、、、、、、 / p>

ReferenceError: D:\nodejs\crud\views\employee\list.ejs:21,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

list.ejs:

<tbody>
<% employees.forEach(function (employees) { %>
<tr>
  <td><%= employees.fullname %></td>
  <td><%= employees.email %></td>
  <td><%= employees.mobile %></td>
  <td><%= employees.city %></td>
  <td>
    <a href="/show" class="btn btn-outline-info my-2 my-sm-0">Show</a>
    <a href="/edit" class="btn btn-outline-warning my-2 my-sm-0">Edit</a>
    <a href="" class="btn btn-outline-danger my-2 my-sm-0">Delete</a>
  </td>
</tr>
<% }) %>

完整错误代码:

  ReferenceError: D:\nodejs\crud\views\employee\list.ejs:21
  19|   </thead>
  20|   <tbody>
  >>   21|     <% employees.forEach(function (employees) { %>
       22|     <tr>
       23|       <td><%= employees.fullname %></td>
       24|       <td><%= employees.email %></td>

  employees is not defined
      at eval (eval at compile 
  (D:\nodejs\crud\node_modules\ejs\lib\ejs.js:633:12), <anonymous>:11:8)
  at returnedFn (D:\nodejs\crud\node_modules\ejs\lib\ejs.js:668:17)
  at tryHandleCache (D:\nodejs\crud\node_modules\ejs\lib\ejs.js:254:36)
  at View.exports.renderFile [as engine]       
  (D:\nodejs\crud\node_modules\ejs\lib\ejs.js:485:10)
  at View.render (D:\nodejs\crud\node_modules\express\lib\view.js:135:8)
  at tryRender 
  (D:\nodejs\crud\node_modules\express\lib\application.js:640:10)
  at Function.render 
  (D:\nodejs\crud\node_modules\express\lib\application.js:592:3)
  at ServerResponse.render 
  (D:\nodejs\crud\node_modules\express\lib\response.js:1012:7)
  at ServerResponse.res.render (D:\nodejs\crud\node_modules\express-ejs-
  layouts\lib\express-layouts.js:77:18)
 at Employee.find (D:\nodejs\crud\controllers\employeeController.js:32:8)
 at D:\nodejs\crud\node_modules\mongoose\lib\model.js:4581:16
 at D:\nodejs\crud\node_modules\mongoose\lib\query.js:4315:12
 at process.nextTick 
  (D:\nodejs\crud\node_modules\mongoose\lib\helpers\query\completeMany.js:35:39)
at process._tickCallback (internal/process/next_tick.js:61:11)

server.js:

server.js:

  require('./models/db');
  require('./models/employee.model');

  const express = require('express');
  const mongoose = require('mongoose');
  const expressLayouts = require('express-ejs-layouts');
  const bodyParser = require('body-parser');
  const path = require('path');

  const employeeController = require('./controllers/employeeController');

  var app = express();

  app.use(bodyParser.urlencoded({ extended: true }))
  app.use(bodyParser.json())

  //EJS
  app.use(expressLayouts);
  app.set('view engine','ejs');

  app.listen(3000, () => {
      console.log('Express server started at port : 3000');
  });

  app.use('/employee', employeeController);

employeeController.js:

employeeController.js:

  const express = require('express');
  var router = express.Router();
  const mongoose = require('mongoose');
  const Employee = mongoose.model('Employee');

  router.get('/',(req, res) => {
res.render("employee/addOrEdit");
  });

  router.post('/',(req, res) => {
insertRecord(req, res);
  });

  function insertRecord(req, res) {
      var employee = new Employee();
      employee.fullName = req.body.fullname;
      employee.email = req.body.email;
      employee.mobile = req.body.mobile;
      employee.city = req.body.city;
      employee.save((err, doc) => {
    if (!err)
      res.redirect('employee/list');
    else {
        console.log('Error during record insertions : ' + err);
          }
      });
  }

  router.get('/list', (req, res) => {
      Employee.find((err, docs) => {
    if (!err) {
        res.render("employee/list", {
            list: docs
        });
    } else {
        console.log('Error in retrieving employee list :' + err);
    }
});
  });

  module.exports = router;


推荐答案

您可以共享以下节点的js服务器端代码吗?它,从您发送 res.render( list); 的位置发送。另外,检查您是否正在从服务器端发送雇员

Can you share the node js server-side code of it, from where you are sending res.render("list");. It would be a lot more helpful to check if you are sending employees from the server-side.

此外,确保您将员工信息发送到这样的视图,

Also, make sure that you are sending the employees information to the view like this,

res.render("list", {employees: employeeData});

这篇关于ReferenceError:D:\nodejs\crud\views\employee\list.ejs:21的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆