从下拉列表中获取值显示表nodejs

所以我正在学习nodejs和mongodb。我使用expressjs和mongojs作为后端应用程序的前端和ejs。我想要做的是用户将从下拉列表中选择以查看可用类的列表,并且类的列表将显示在表中。例如,如果用户选择全部,则数据库中的所有类都将显示在表中。我不确定如何从下拉菜单中获取值,并以表格形式显示来自MongoDB的数据。这是我到目前为止,我得到此错误:错误:发送后无法设置标头。从下拉列表中获取值显示表nodejs

admin.js

router.get('/showclass', function(req, res) { 

res.render('showclass');

});

router.post('/showclass', function(req, res) {

var selectValue = req.body.table;

if(selectValue == 'all') {

console.log('All is selected');

db.classes.find().forEach(function(err, doc) {

if(err) {

res.send(err);

} else {

res.send(doc);

res.render('showclass');

}

});

}

});

EJS

<%- include('includes/header') %> 

<%- include('includes/navbar') %>

<form method="post" action="/admin/showclass">

<table class="table table-bordered">

<label>Show Table By:</label>

<select>

<option value="all">All</option>

<option value="recent">Recent</option>

<option value="opel">Opel</option>

<option value="audi">Audi</option>

</select>

<tr>

<th>Class Name</th>

<th>Class Time</th>

<th>Duration</th>

<th>Instructor</th>

<th>Maximum Students</th>

<th>Brief Description</th>

<th></th>

</tr>

<tr>

<td>Data</td>

<td>Data</td>

<td>Data</td>

<td>Data</td>

<td>Data</td>

<td>Data</td>

<td><a href="editclass">Edit</a>/Delete</td>

</tr>

<button type="submit" class="btn btn-default">Submit</button>

</table>

</form>

<%- include('includes/footer') %>

回答:

res.sendres.render都做同样的事情,他们发回响应给用户,你不能同时使用它们,除去res.send(doc)和通你的数据为render方法。

router.get('/showclass', function(req, res) { 

res.render('showclass');

});

router.post('/showclass', function(req, res) {

var selectValue = req.body.table;

if(selectValue == 'all') {

console.log('All is selected');

db.classes.find().forEach(function(err, doc) {

if(err) {

res.send(err);

} else {

res.render('showclass', { doc: doc });

}

});

}

});

看看express docs

回答:

你不能要求相同的请求都res.sendres.render

你可以通过上下文的render函数在第二个参数:

res.render('showclass', doc); 


参考: http://expressjs.com/en/guide/using-template-engines.html

以上是 从下拉列表中获取值显示表nodejs 的全部内容, 来源链接: utcz.com/qa/266601.html

回到顶部