Articles of 帕格

Express,Jade和NodeJS:在页面之间导航

如何创build一个有两个button的Jade页面,其中每个button都redirect到用Jade制作的另一个页面?

运行基本Express项目时出现错误

我第一次搞乱了Node.js,决定用express来创build一个简单的应用程序。 我按照如下的空目录按照github的指示: npm install -g express express npm install -d node app.js 当导航到localhost:3000我得到以下错误: Express 500 Error: Cannot find module './lib/jade' at Function._resolveFilename (module.js:332:11) at Function._load (module.js:279:25) at Module.require (module.js:354:17) at require (module.js:370:17) at Object. (C:\dev\gravity_kata\node_modules\jade\index.js:4:5) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Module.require (module.js:354:17) 在node_modules\jade\lib查看时,我看到了Jade的所有库文件,但没有看到jade文件夹。 所以我创build了一个名为jade的lib下的文件夹,并将库文件移动到那里,现在我的默认应用程序工作。 现在,鉴于我几乎没有Node.js和Express的经验,我很确定我做错了什么。 有人知道这里发生了什么吗? 编辑: […]

为什么不能在Express.js中正确地格式化它的输出

我在Express.js中使用Jade,我注意到,html输出全部在一行中。 在翡翠网站上( http://scalate.fusesource.org/documentation/jade-syntax.html )它说格式化的输出是标准的,选项是ScamlOptions.nl和ScamlOptions.indent,但我找不到可以在任何地方查看是否设置不正确。 有谁知道我可以find这些选项,或者有另一种方法来强制干净的格式? 谢谢! 这个线程没有帮助: 如何在Express中输出漂亮的html?

我如何在express模板目录的根目录下包含/扩展一个jade文件?

给定一个示例结构: /layout.jade /really/deep/dir/inside/my/template/folder/example.jade 有没有什么办法可以在example.jade中扩展layout.jade而不必跟踪父目录的数量? 这按预期工作: extends ../../../..etc../../../layout 但是最好做一些事情: extends /layout 甚至别名/硬链接,并使用它: extends layout 另外假设有人知道一个解决scheme,它也可以应用于包括?

使用wysiwyg markdown的翡翠让用户编辑内容

除非你绝对必须,否则我相信不要重新发明轮子。 所以我不想开始编码已经编码的东西,或者很多人已经做出了贡献。 我刚刚移居到Planet Node.js(对不起php / apache),并且需要把资源放在一起,以便使其他语言的速度更快。 我使用Node.js作为服务器监听器, Express.js作为中间件,而js js作为模板引擎。 我想使用像TinyMCEfunction,而不是代码是通常丑陋的HTML markup ,我希望代码是markdown并允许玉做它的majic。 我想这或多或less像stackoverflow编辑(我正在键入),但也许有点更先进的用户界面英明。 所以,比如说,如果我点击一个buttonB,它应该使所选的文本以任何所见即所得的编辑器的大胆。 参考文献 http://nodejs.org/api/ http://expressjs.com/api.html https://github.com/visionmedia/jade#readme-contents http://www.tinymce.com/wiki.php

玉模板:属性循环?

在我的玉石视图中有一个JavaScript对象,如下所示: element = { name: 'createdAt', type: 'text', attrs: { class: 'date', type: 'text', placeholder: 'Created at' } } 我想要在input标签上生成属性,尝试像这样的东西 input( each k, v in element.attrs k= v ) 当然这不起作用,我也尝试了一些内联代码,但没有成功。 你有什么想法来帮助我吗?

客户端+服务器端模板,对我感觉不对,如何优化?

在我正在制作的Web应用程序中,我使用经典的Express + Jade来呈现客户端页面,同时也暴露了一些REST API(比如:“user list API”)。 这些客户端页面使用提供的API来检索“用户列表”并显示它。 为了显示它,一旦数据被检索,我使用句柄模板库。 对我来说,这似乎有点肮脏,使用两个模板引擎,parsing代码两次,如何使它更好? 注意:我已经通过在客户端页面中插入一个脚本variables来发送初始数据,从而优化了这个function。 然后这个variables以API接收的数据显示。 该API仅用于数据刷新的情况。 更新:使用玉双方服务器和客户端是一个好主意,但如何分离/指定? 渲染模板中的哪个部分应该在服务页面的时候完成,哪个部分将被客户端使用?

Jade布局不能在子目录中find

我的设置: 我的目录structrue看起来像这样: /views/ |– index.jade |– layout.jade /account/ |– login.jade |– register.jade 我已经configuration我的视图引擎如下: app.set('view engine', 'jade'); 编辑:我也有 app.set('views', __dirname + '/views'); 我的控制器看起来像: app.get('/login', redirectIfLogined, function(req, res){ res.render('account/login', { title: "Login", redir: req.query.redir}); }); app.get('/register', redirectIfLogined, function(req, res) { res.render('account/register', { title: "Register"}); }); 我的问题 使用所描述的设置,我得到一个500错误: 500 Error: failed to locate view "layout" at Function.compile (D:\dev\Azznomad\express-template\node_modules\express\lib\view.js:58:15) […]

Jade中的内联条件

– if (typeof(person) == 'undefined') input(type="text", name="person[Name]") – else input(type="text", name="person[Name]", value="#{person.Name}") 有没有什么办法可以写这个内联? 我有一个选项select,我不想做一个30 +值的条件语句来select正确的选项。 谢谢!

在Jade视图中使用JavaScript代码 – 如果(variables)显示未定义,而不是传递

所以这是一个反复出现的问题,我还没有find另一个例子,所以在这里: 在渲染Jade模板时,即使在模板中使用-if(variableName) ,我也会得到'variableName' undefined 。 示例(我正在使用这个作为'info'flash消息的部分): -if(info) – if(info.length){ ul -info.forEach(function(info){ li= info -}) -} 这个返回'info'没有被定义,而不是在没有flash / info消息的时候渲染任何东西。 有谁知道我在做什么错? 我知道typeof(variable) != 'undefined选项,如上所述。 如果我想做一些像-if (typeof(req.session.user) != 'undefined')我将不得不做3个嵌套的if(typeof(req)!='undefined')这是我唯一的select吗?