节点应用程序variables传递到手写笔文件

我正在构build一个小节点应用程序,并使用Express和Jade和Stylus来渲染一些基本的HTMl页面。

我很好奇,如果有一种方法可以将一些variables传递到从Node生成的.styl文件中? 我很清楚,我可以在.styl文件中定义variables,但我需要更加dynamic。 具体来说,我正在寻找一种简单的方法来在数据库中存储一些颜色,让节点获取这些值,然后将这些值插入到.styl文件中,这样当页面呈现时,这些variables就被传入了。看起来应该这样做 – 但我缺乏细节。 任何帮助表示赞赏。 谢谢!

感谢@ebohlman,因为他的build议接近我最终实现的目标。

基本上我试图找出如何在连接中间件上做到这一点,这就是我想到的:

当做app.configure我使用自定义编译编译function(键“编译”),如下所示:

app.use(require('stylus') .middleware({ src: app.root + '/app/public', compile: compile }) ); 

然后我创build了几个函数:

 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,但似乎这可能是别人想要知道如何去做的解决scheme。 如果有人有这种做法的任何倒台,请让我知道。

您可以使用Stylus API的define()函数来设置Stylusvariables并使JSfunction可用。