【发布时间】:2014-05-29 14:42:35
【问题描述】:
我在使用 Mongoose 在 NodeJS 中保存菜单顺序时遇到了一些问题。
首先我通过 Jade 循环出我的菜单结构:
form(method='post', action='/admin/pages/order')
ul
each page in pages
li
input(type='number', name='order', value= page.order)
| -
a(href='/admin/pages/edit/' + page._id)= page.title
| -
a(href='/admin/pages/delete/' + page._id) Delete page
button Save order
page.order 描述了页面的当前顺序。 IE。 Frontpage 10、About 20、Contact 30 等。如果我想要另一个订单,我应该能够将 Frontpage 移动到 25,这将把它放在 About 和 Contact 之间,但只要我保存。顺序乱了。
也许我错过了下面的一些代码或做错了什么?
这是我的存档:
var Page = require('../models/page');
app.post('/admin/pages/order', function(req, res) {
var pageOrder = req.body.order;
var counter = [];
Page.find({}, {}, { sort: { 'order' : 1 } }, function(err, pages) {
pages.forEach(function(page, index) {
counter.push(true);
page.order = 0;
page.save();
if (counter.length === pages.length) {
counter = [];
var count = 1;
Page.find({}, {}, { sort: { 'order' : 1 } }, function(err, pages) {
pages.forEach(function(page, index) {
counter.push(true);
page.order = 10 * count++;
page.save();
if (counter.length === pages.length) {
res.redirect('/admin/pages');
}
});
});
}
});
});
});
如果您需要更多信息,请直接说。
【问题讨论】:
标签: javascript node.js express mongoose pug