草庐IT

javascript - Express Middleware 为所有 app.get() 填充一个 Jade 变量

我有一个名为layout.jade的Jade文件,我的所有模板都对其进行了扩展。如果用户当前已登录(这在req.session中保持跟踪),我希望能够在其中有一个注销按钮。所以layout.jade会有类似的东西,-if(loggedin)a.navButton(href="/logout")LogOut页面的路由看起来像,app.get("/foo",function(req,res){res.render("foo",{loggedin:req.session.isValidUser});});问题是,我不想在每条路由中都手动填充loggedin变量。有没有一种方法可以使用Expr

javascript - 在 express 中预编译 jade 模板对生产有好处吗

当在生产中使用jade-lang时,我是否会受益于某种形式的预编译所有.jadeView然后在res.render中使用它们的中间件?还是当您执行NODE_ENV=production时会自动发生?我只是在探索有关如何在生产环境中加快jade渲染的选项。 最佳答案 当Jade编译模板时,模板被缓存。在生产环境中如果预热缓存,则不需要预编译模板。即使您不这样做,模板也会在第一次编译后被缓存。我建议您查看Jade的源代码,以更好地理解它的工作原理。exports.render=function(str,options,fn){//...

javascript - jade 的语法支持 switch 语句吗?

我在express服务的jade中试过这个,但得到了“意外的标识符”作为错误。-switch(myvar)-case:"0"spanFirstCasebreak-case:"2"spanSecondCasebreak-case:"3"spanThirdCasebreak-case:"4"spanFourthCasebreak我很好奇switch语句的语法是什么,如果有的话。更新:Jade,不是express。 最佳答案 编辑这个问题显然是关于Jade的。但答案仍然是肯定的:)。但是它叫做case:来自thedocscasefrien

javascript - 将变量从 jade 传递到 javascript

我正在尝试将一个变量从路由处理程序传递到javascript文件。获取首页的快捷方式是:exports.home=function(req,res){var_ajaxData=[["#collections","collections","Collections"],["#candidates","candidates","Candidates"],["#entries","entriess","Entries"],["#exits","exits","Exits"]];res.render('home/home',{title:'WelcometoMyWeb',_ajaxData:_

javascript - 错误 : Cannot find module 'jade~'

我是Nodejs的新手。我使用CompoundJs创建了一个crud操作。应用程序运行良好,直到我尝试提醒一个值,之后我收到错误500Error:Cannotfindmodule'jade~'atFunction.Module._resolveFilename(module.js:338:15)atFunction.Module._load(module.js:280:25)atModule.require(module.js:362:17)atrequire(module.js:378:17)如何解决这个问题我的索引#tabsullia(href='#tabs-1')NewLeave

javascript - 如何有条件地编译(使用 Grunt)仅使用模板包含更改的 Jade 文件

使用grunt-contrib-watch推荐的只编译更改文件的版本在这里:https://github.com/gruntjs/grunt-contrib-watch#compiling-files-as-neededvarchangedFiles=Object.create(null);varonChange=grunt.util._.debounce(function(){grunt.config('jshint.all.src',Object.keys(changedFiles));changedFiles=Object.create(null);},200);grunt.ev

javascript - Jade : load external javascript and call function

我正在学习Express/Node/Jade,现在我想在Jade文件中包含一个来自公共(public)文件夹的javascript文件,只用于该页面。例如,在jade文件中我输入:script(src='/javascripts/test.js')在test.js里面我有一个函数functioncheck_test(){return"It'sworking!"}然后我尝试通过以下方式调用Jade中的函数-vartest_response=check_test()比我得到的错误说“undefinedisnotafunction”和test.js根本没有加载。显然Jade不会加载文件,它们

javascript - Jade - 根据环境设置基本目录

我有一个jade页面,我做的第一件事是设置一个变量来确定所有链接使用的基本目录。if!basebase='/klog/'//base='/website-clear/klog/'这实际上是针对github页面的,所以每次我把页面渲染成html的时候,我都要记得改base,然后再改回来进行本地编辑。一定有更好的方法来做到这一点。目前我正在考虑在本地副本中有一个未跟踪的文件,其中包括基础-但这真的有必要吗?处理此问题的最佳方法是什么? 最佳答案 更强大的解决方案是检查环境变量。在生产服务器上设置NODE_ENV=production,不

javascript - Jade 压痕错误

所以对于我的Express网站,我使用的是jade。所以我决定尝试修改我的布局文件,这样我就可以开始设计我的网站了。我修改了原始布局代码(有效),但我开始在任何扩展布局的文件中出现缩进错误,如下所示:500Error:/home/kevin/Blue/views/layout.jade:64|pHelloWorldInvalidindentation,youcanusetabsorspacesbutnotboth4|pHelloWorldInvalidindentation,youcanusetabsorspacesbutnotbothatObject.Lexer.indent(/ho

javascript - 如何将对象的属性作为本地属性传递给 Jade 中的包含项?

我想在循环中传递一个对象,如下所示;数据结构:things=[{title:'foo',description:'bar'},{title:'baz',description:'bam'}];index.jade:-forthinginthingsincludethings-template在上述格式中,我希望能够将某种参数指定为包含的“本地”。things-template.jade:lih3#{title}p#{description}这可能吗,还是我需要将它分配给另一个变量并在我的“事物模板”中引用它? 最佳答案 作为最新的J