我正在尝试创建一个循环,它将为我输出值到表中。到目前为止,我所拥有的内容在呈现的页面上没有加载到任何地方。没什么可展示的。我不太确定如何用swig/twig做一个循环,所以我不知道在这篇文章中应该包括什么。请看一下代码,如果你需要其他东西,我会根据要求添加它。我在循环中的尝试:
{% for aps in aps %}
<tr>
<td>{{aps.name}}</td>
<td>{{aps.manufacturer}}</td>
<td>{{aps.model}}</td>
<td>{{aps.name}}</td>
<td>{{aps.notes}}</td>
</tr>
{% endfor %}型号:
var accessPointsSchema = new Schema({
name: {String},
manufacturer: {type: String},
model: {type: String},
IPAdress: {type: String},
MACAdress: {type: String},
range: {type: Number()},
bands: {type: String},
channel: {type: Number},
dateBought: {type: Date},
PoE: {type: Boolean},
assetNumber: {type: Number},
warrantyExpiration: {type: Date},
location: {type: String},
notes: {type: String},
author: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
email: String
}
});路由:
// show model
app.get('/dashboard/it/model',
setRender('dashboard/it/model'),
setRedirect({auth: '/login'}),
isAuthenticated,
dashboard.getDefault,
(req, res) => {
console.log("Reached end/start thing");
AP.find({}, function(err, allAP){
console.log(allAP);
if(err){
console.log("Reached if");
console.log(err);
} else {
console.log("Reached else");
setRender('dashboard/it/model',{aps:allAP});
}
});
});发布于 2017-10-17 08:36:55
根据您在https://github.com/joshk132/asset-management上发布的代码,我将尝试回答
首先,setRender似乎不接受第二个参数。因此,请尝试使用下面这样的内容:
app.get('/dashboard/it/model',
setRender('dashboard/it/model'),
setRedirect({auth: '/login'}),
isAuthenticated,
(req, res, next) => { // Moved this before getDefault
console.log("Reached end/start thing");
AP.find({}, function(err, allAP) {
console.log(allAP);
if(err){
console.log("Reached if");
console.log(err);
next(err);
} else {
console.log("Reached else");
res.locals.aps = allAP; // Set the data in locals
next();
}
});
},
dashboard.getDefault
);重要的是,我在调用dashboard.getDefault之前移动了数据库内容,因为getDefault调用res.render,在此之前需要加载所有数据。
您还需要在getDefault的末尾处理next()调用,因为没有其他事情可做。
然后,模板将如下所示:
{% for ap in aps %}
<tr>
<td>{{ap.name}}</td>诸若此类。
https://stackoverflow.com/questions/46780000
复制相似问题