Dustjs自定义过滤器停止工作

时间:2014-07-28 22:50:31

标签: node.js dust.js

出于某种原因,我的dustjs自定义过滤器刚刚停止在生产服务器上工作,即使它们在我的本地计算机上正常工作。任何人都有任何想法为什么会发生这种情况?我正在使用dustjs-linkedin v.2.3.5。

我的过滤器看起来像什么(位于我的主server.js文件中):

dust.filters.uppercase = function (value) {
    return String(value).toUpperCase();
};

dust.filters.ucwords = function (value) {
    return String(value).replace(/^([a-z\u00E0-\u00FC])|\s+([a-z\u00E0-\u00FC])/g, function($1) {
        return $1.toUpperCase();
    });
};

dust.filters.money = function (value) {
    return parseFloat(value).toFixed(2);
};

更新:我真的需要这个修复,并且不知道为什么这会在本地工作,但不在我的服务器上(这曾经工作得很好)。不幸的是,我没有注意到它何时停止工作并且做了很多更新。任何想法都会非常感激。

以下是我的package.json中的应用程序依赖项:

"dependencies": {
    "express": "3.4.8",
    "socket.io": "0.9.16",
    "dustjs-linkedin": "2.3.x",
    "dustjs-helpers": "1.2.0",
    "consolidate": "0.10.0",
    "mongoose": "3.8.x",
    "node-uuid": "1.4.1",
    "express-form": "0.10.1",
    "bcrypt-nodejs": "0.0.3",
    "subdomain": "0.1.0",
    "gm": "1.14.x",
    "connect-mongo": "0.4.1",
    "nodemailer": "0.6.5"
}

另一个更新:我添加了一个console.log('money');到钱过滤器,它每次在本地运行时记录就好了,但从不在生产端向控制台记录任何东西。这让我相信自定义过滤器由于某种原因没有添加到生产服务器上。

另一个更新:我确实将过滤器添加到粉尘源代码中,但它们仍然无法在生产服务器上运行,但在本地工作正常。可能会以某种方式使用NODE_ENV导致某些东西陷入灰尘?

2 个答案:

答案 0 :(得分:0)

我认为这是因为您已将某些软件包更新到更新版本。 我有类似于nodemailer包从0.7.1升级到1.0.2版本的东西 你能推测package.json文件的dependecies哈希吗?

答案 1 :(得分:0)

检查node_modules目录树。我的猜测是你会发现两个dustjs-linkedin的例子。您的过滤器将在一个,但您正在使用另一个。其他东西在另一个副本中拖动基于不同的版本。