Articles of expression

Node.js + Express.js。 如何渲染较less的CSS?

我无法在我的快速工作区中呈现较less的CSS。 这是我目前的configuration(我的css / less文件在'public / stylo /') : app.configure(function() { app.set('views' , __dirname + '/views' ); app.set('partials' , __dirname + '/views/partials'); app.set('view engine', 'jade' ); app.use(express.bodyDecoder() ); app.use(express.methodOverride()); app.use(express.compiler({ src: __dirname + '/public/stylo', enable: ['less']})); app.use(app.router); app.use(express.staticProvider(__dirname + '/public')); }); 这是我的main.jade文件 : !!! html(lang="en") head title Yea a title link(rel="stylesheet", type="text/css", href="/stylo/main.less") link(rel="stylesheet", href="http://fonts.googleapis.com/cssfamily=Droid+Sans|Droid+Sans+Mono|Ubuntu|Droid+Serif") script(src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js") […]

NodeJS + Express – 将会话中间件应用于某些路由

我有一个快速的应用程序与一些路线,只有两个需要支持会议。 我到处读到中间件定义(app.use(express.session({…)仅适用于后面的路由,所以我创build了这个示例: var express = require('express'); var app = express(); app.use(express.bodyParser()); app.get('/path1', function (req, res) { res.send('text response'); }); app.use(express.cookieParser()); app.use(express.session({ secret: 'secret', cookie: { maxAge: new Date(Date.now() + 2 * 60 * 1000) } })); app.get('/path2', function (req, res) { res.session.test = { "test": "test" }; res.send('text response'); }); app.listen(8088); 但是这不起作用:in / path2 res.session是未定义的。 […]

Node.js Express路由命名和sorting:如何确定优先级?

假设我的Express应用程序有几条GET路线: // music albums app.get('/api/albums', routes.albums.getAlbums); app.get('/api/albums/:id', routes.albums.getAlbum); app.get('/api/albums/artwork', routes.albums.getAlbumArtwork); 我尝试使用下面的jQuery AJAX代码片段来触发它们: $("#retrieveAlbumArtwork").on("click", function() { $.ajax({ url: "api/albums/artwork", type: "GET", data: { artist: $("#albumArtist").val(), title: $("#albumTitle").val() }, // … callbacks and such 出于某种原因,这个调用命中第二个处理程序,使用/:id参数,而不是显式/artwork路线。 像这样交换它们使其function如预期的那样: // music albums app.get('/api/albums', routes.albums.getAlbums); app.get('/api/albums/artwork', routes.albums.getAlbumArtwork); app.get('/api/albums/:id', routes.albums.getAlbum); 有人可以解释为什么会发生这种情况吗? 我会假设快车会很聪明,以确定一个身份证参数( /albums/23453243 )与查询string( /albums/artwork?artist=artistName&title=albumTitle )和适当的路线,但这似乎并不是这样的情况?

expressjs支持方法删除,并放在没有方法覆盖

如何让expressjs使用表单的删除和放置方法? <form method="DELETE" action=""> 使用上面的是在最新的稳定版本的chrome中发送一个GET请求。 这应该是一个浏览器问题? 有没有更好的方法来覆盖这个没有一个特殊的input字段来支持这些?

ExpressJS 3.0如何将res.locals传递给玉视图?

我想在用户login失败后显示一个Flash消息,但是我不能让variables显示在我的Jade视图中。 我有一些片断,我知道我必须在我的app.configure()中使用它: app.use (req, res, next) -> res.locals.session = req.session 在用户input错误的密码后,我将设置闪存信息: exports.postSession = (req, res) -> users = require '../DB/users' users.authenticate(req.body.login, req.body.password, (user) -> if(user) req.session.user = user res.redirect(req.body.redirect || '/') else req.session.flash = 'Authentication Failure!' res.render('sessions/new', {title:'New', redirect: req.body.redirect }) ) 我不知道如何访问我的Jade文件中的res.locals.session 。 我怀疑我正在设置一切正确的。 这个问题很像这个:将Express.js 2迁移到3,特别是app.dynamicHelpers()到app.locals.use? 但我仍然无法工作。 如果有人能给我看一个在res.local中设置值并在视图中访问它们的简单例子,我们将非常感激。 PS我知道连接闪光灯,但我需要了解如何在视图中提供的东西。 这是我的应用程序: app.configure(() -> app.set('views', __dirname […]

nodejs express,ajax发布w / jQuery和接收响应

遇到一些麻烦,得到快速响应我的jQuery Ajax请求。 实际发布工作正常,但无论我尝试我似乎无法真正从我的应用程序,我可以使用的数据响应。 起初,它只是不停地发布和挂起,就像一分钟后,它会回应一个警告,说像“XML文件加载”(不知道它来自哪里) – 反正,现在它给我 SyntaxError:在IncomingMessage上parsing(本机)的意外标记ILLEGAL。 在我的快速应用程序中,我有: app.post('/save', function(req, res) { console.log(req.body.objectData); res.contentType('json'); res.send({ some: 'json' }); }); 在我的jQuery中: $.ajax({ url: "/save", type: "POST", dataType: "json", data: {objectData: someObject}, contentType: "application/json", cache: false, timeout: 5000, complete: function() { //called when complete console.log('process complete'); }, success: function(data) { console.log(data); console.log('process sucess'); }, error: function() { […]

Swagger可以根据现有的快递路线自动生成yaml吗?

我inheritance了一个现有的API,并且想用swagger来logging它,但我还不知道它的全部范围。 Swagger(或其他中间件/工具)是否可以根据现有的快速路线自动奇迹般地产生yaml(对于swagger)? 对于我在其他问题上看到的情况,看起来这主要是一项手工工作,但是我仔细检查这里是否有人find解决办法。

如何在Express(NodeJS)中validation和处理表单

有一个首选的快递表单处理和validation库吗? 我真的在寻找与Django表单中类似的抽象级别 – 即模板中的validation和错误报告。 如果客户端可以使用相同的validation,那就太好了。 有没有人用过或写过任何好的东西?

如何匹配每个文件,但只有一个在grunt concat?

我使用grunt来连接和最小化我的js文件,我使用下面的configuration为concat部分: concat: { dist: { src: ['<banner:meta.banner>', 'js/*.js'], dest: 'js/script.js' } } 它匹配我的js文件夹中的每个文件,但我需要忽略modernizr.js ,有没有办法做到这一点? 我想我会需要一些模式匹配的巫术做到这一点,但我不知道如何。 提前致谢。

会话密钥在Express web框架中的重要性

会议秘密的重要性使我很困惑。 我正在使用Express和Node进入Web开发,现在我试图实现一个简单的login。 以下代码取自Express中的会话示例。 // Required by session() middleware // pass the secret for signed cookies // (required by session()) app.use(express.cookieParser('keyboard cat')); // Populates req.session app.use(express.session()); 它使用“键盘猫”作为会话密钥。 我查看过的关于会话秘密的许多事情都build议我将其改为自定义。 我现在有3个具体的问题。 为什么我在使用PHP之前没有看到这个? 什么是会议秘密正在使用? 比方说,我改变会话密钥。 我的代码是开源的。 在这种情况下不会改变这个有点多余? 我没有看到要求用户作为一个选项的自定义键。 我正在考虑生成一个随机的UUID来填写密钥。 这有问题吗? (在安全方面)