出于某种原因,我的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导致某些东西陷入灰尘?
答案 0 :(得分:0)
我认为这是因为您已将某些软件包更新到更新版本。 我有类似于nodemailer包从0.7.1升级到1.0.2版本的东西 你能推测package.json文件的dependecies哈希吗?
答案 1 :(得分:0)
检查node_modules目录树。我的猜测是你会发现两个dustjs-linkedin的例子。您的过滤器将在一个,但您正在使用另一个。其他东西在另一个副本中拖动基于不同的版本。