彼のアドバイスは私が最終的に実装したものに近かったので、@ebohlmanに感謝します。
基本的に、私は Connect Middleware の上でこれを行う方法を見つけようとしていましたが、ここに私が思いついたものがあります:
app.configure を実行するとき、次のようにカスタム コンパイル コンパイル関数 (キー 'compile') を使用しました。
app.use(require('stylus')
.middleware({
src: app.root + '/app/public',
compile: compile
})
);
次に、いくつかの関数を作成しました。
var stylus = require('stylus');
var mylib = function(style){
style.define('themeColor1', function(){
//call to the db that returns a color
color = 'blue';
color = color ? color : 'orange';
return new stylus.nodes.Literal(color);
});
};
var compile = function(str, path) {
return stylus(str)
.use(mylib);
};
次に、.styl ファイル内で次のようにします。
background-color themeColor1();
themeColor1 関数の三項演算子により、簡単なデフォルトとオーバーライドが可能になります。例に基づいてAPIを理解するのに少し時間がかかりましたが、これは他の人が方法を知りたいと思う解決策になる可能性があるようです. 誰かがこのアプローチの欠点を持っている場合は、私に知らせてください。