ReferenceError: D:nodejscrudviewsemployeelist.ejs:21



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

ReferenceError: D:odejs\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:nodejscrudviewsemployeelist.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:nodejscrudnode_modulesejslibejs.js:633:12), <anonymous>:11:8)
at returnedFn (D:nodejscrudnode_modulesejslibejs.js:668:17)
at tryHandleCache (D:nodejscrudnode_modulesejslibejs.js:254:36)
at View.exports.renderFile [as engine]       
(D:nodejscrudnode_modulesejslibejs.js:485:10)
at View.render (D:nodejscrudnode_modulesexpresslibview.js:135:8)
at tryRender 
(D:nodejscrudnode_modulesexpresslibapplication.js:640:10)
at Function.render 
(D:nodejscrudnode_modulesexpresslibapplication.js:592:3)
at ServerResponse.render 
(D:nodejscrudnode_modulesexpresslibresponse.js:1012:7)
at ServerResponse.res.render (D:nodejscrudnode_modulesexpress-ejs-
layoutslibexpress-layouts.js:77:18)
at Employee.find (D:nodejscrudcontrollersemployeeController.js:32:8)
at D:nodejscrudnode_modulesmongooselibmodel.js:4581:16
at D:nodejscrudnode_modulesmongooselibquery.js:4315:12
at process.nextTick 
(D:nodejscrudnode_modulesmongooselibhelpersquerycompleteMany.js:35:39)
at process._tickCallback (internal/process/next_tick.js:61:11)

服务器.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);

员工控制器.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");.检查您是否从服务器端发送employees会更有帮助。

此外,请确保将employees信息发送到如下所示的视图,

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

一些会产生问题的场景:- 1.您正在从服务器传递另一个值。如果是这样,那么您需要更改该res.render("list", {employees: employeeData});2.您需要检查.ejs页面中的数组值是否不为空if (employeeData) {

<% if (employeeData) { %>
<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>
<% }) %>
<% } %>

注意:- 由于我不知道我从场景中给出解决方案的代码。

最新更新