0

我正在 Express 中构建一个应用程序。在其中一个视图中,登录的超级管理员能够查看所有可用的客户端/用户。在这个视图中,我从我的 MongoDB/Mongoose 中加载了一堆客户端数据,其中很简单:

app.get('/superadmin', function(req, res) {    
  Client.find({}, '_id company monthly_cost sms_cost', function (err, docs) ...

正如您在上面看到的,我只从查询中选择了我需要的值。这四个是:“_id”、“company”、“monthly_cost”和“sms_cost”

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

现在我的问题:

Q1) WHERE 实际上是该代码的正确位置?我目前将它放在上面的路由处理程序中......因此它将在上面的代码下方。我认为这主要是根据 MVC 模式的正确方法。我在想我不想把这段代码放在 Jade 视图模板中吗?

Q2) 我应该以什么形式保存这些数据以及我应该如何将它传递给 Jade。我是否应该以某种方式将其添加到“文档”数据中……也就是说,我从数据库中提取的数据。或者我应该把这个 creationDate 放在一个单独的数组中,我将它与原始 DB 数据并排传递给玉。

我希望我的问题足够清楚!

4

1 回答 1

1

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

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

于 2013-09-16T12:23:32.380 回答