Node.js ";“正确的道路”;加载、压缩并将变量从Express传递到Jade

Node.js ";“正确的道路”;加载、压缩并将变量从Express传递到Jade,node.js,mongodb,express,mongoose,pug,Node.js,Mongodb,Express,Mongoose,Pug,我正在Express中构建一个应用程序。在其中一个视图中,登录的Superadmin可以查看所有可用的客户端/用户。在这个视图中,我使用一个简单的: app.get('/superadmin', function(req, res) { Client.find({}, '_id company monthly_cost sms_cost', function (err, docs) ... 正如您在上面看到的,我只从查询中选择了需要的值。这四个是:“\u id”、“公司”、“每月成

我正在Express中构建一个应用程序。在其中一个视图中,登录的Superadmin可以查看所有可用的客户端/用户。在这个视图中,我使用一个简单的:

app.get('/superadmin', function(req, res) {    
  Client.find({}, '_id company monthly_cost sms_cost', function (err, docs) ...
正如您在上面看到的,我只从查询中选择了需要的值。这四个是:“\u id”、“公司”、“每月成本”和“短信成本”

从“_id”中,我可以使用.getTimestamp()获取“创建日期”,但此函数返回的Dateobject的格式有点复杂。我需要一个简单的日期,比如:(YYYY-MM-DD)。我正在考虑使用一个像dateformat这样的小节点插件,或者可能编写一个非常简单的函数,从IsoDate对象中提取YYYY、MM和DD,并将其保存在一个新的变量/数组中

现在回答我的问题:

Q1)该代码的正确位置在哪里?我现在把它放在上面的路径处理程序中。。。因此,它将紧跟在上述代码的正下方。根据MVC模式,我认为这基本上是正确的方法。我想我不想把这个代码放在Jade视图模板中

问题2)我应该以何种形式保存此数据,以及如何将其传递给Jade。我是否应该将其添加到“文档”-数据。。。也就是说,我从数据库中提取的数据。或者我应该把这个creationDate放在一个单独的数组中,我将它和原始DB数据一起传递给jade

我希望我的问题足够清楚

Q1: 如果您的Mongoose查询完全依赖于您的路线
/superadmin
,那么这正是放置代码的正确位置。如果您在不同的路由或函数中使用相同的代码段,那么您最好将其包装在一个每个相关路由都可以访问的函数中。但是不要忘记包装
req
res
和其他必需的变量。将您的计算放在回调中,并仅将Jade用于数据表示

Q2:
你说的“保存”是什么意思?当您已经在迭代每个文档以进行计算和转换时,请为每个文档创建一个额外的字段
creationDate
,然后将
docs
作为单个参数传递到Jade文件。

我已尝试将新数据添加到查询的数据中。。。但出于某种原因,这不起作用:对于(var i=0,tot=docs.length;i