Tag: expression

Node.js – express – jade – 编译SASS / LESS

任何人都有一个真正的新手指南nodejs – express – SASS / LESS? 我一直无法得到这个工作。 我现在的例子是尽可能的没有 var express = require('express'), less = require('less'), app = express.createServer(); var pub_dir = __dirname + '/public'; app.configure(function(){ app.use(express.compiler({ src: pub_dir, enable: ['less'] })); app.use(express.staticProvider( pub_dir )); }; app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); 文件style.css.less位于pub_dir ,我可以直接访问它,样式是 @brand_color: #4D926F; body { color: @brand_color; } 据我了解,编译应该在启动时发生,并且在src […]

如何从Expresspath映射中自动生成API文档?

我在nodejs + Express中开发了一个REST API,并且在README文件中同时logging了我的API,我想知道是否可以自动化它。 例如给出: app.get('/path/to', dosomething); app.post('/path/to/:somethingelse', scream); 我希望它自动生成这个 GET: /path/to dosomething POST: /path/to/:somethingelse scream

Express Session + Angular:无法访问connect.sid cookie

有一些我真的不明白在这里: 我有expression在服务器端运行,会话初始化。 app.use(express.session({ secret: 'mySecret' }) })); 正如在这篇文章中提到的使用Connect混淆会话ID ,它发送一个connect.sid cookie到任何请求。 在客户端,我想读取这个cookie的内容,感觉不可能: angular.module('myApp.controllers', ['ngCookies','myApp.services']) .controller('homeCtrl', function($scope, $cookies) { $cookies['test']='myValue'; console.log($cookies); }); 当我运行这个,我得到这个对象在日志: Object {test: "myValue"} ,而如果我去在Chromedebugging器的资源选项卡,我可以看到两个cookies: 我究竟做错了什么 ? 从angular度访问服务器制作的cookie是不可能的? 谢谢

节点检查员与Express 4

我试图运行一个Express 4应用程序运行节点检查器 – 我运行这个在stream浪者箱,但能够查看浏览器中的页面没有任何问题(我有stream浪机上的端口可用于主机)。 我使用npm start或node –debug bin/www npm start应用程序,然后启动节点debugging器bin/www 。 我在浏览器中加载检查器,它在第一行打到初始断点,但在页面上执行任何操作以debugging将触发断点的操作,导致EADDRINUSE (又名端口正在使用)错误。 我有点困惑,可能是什么原因造成这个,但是,这是非常可能的,我使用的命令,可以在Express 3,而不是4的。另外,也许有一些configuration我缺less运行debugging器主机浏览器,但在stream浪盒上运行检查员?

(Node.js / Express.js)错误:架构尚未注册模型“文档”

我试图通过Dailyjs.com上的Nodepad教程(在此处find)工作。 当我尝试执行时,我最终停下来(在tut的第2步之后): Error: Schema hasn't been registered for model "Document". Use Mongoose.define(name, schema) at Mongoose.model (/usr/local/lib/node/.npm/mongoose/1.0.16/package/lib/mongoose/index.js:138:13) at Object.<anonymous> (/root/Repos/nodepad/models.js:3:10) at Module._compile (module.js:374:26) at Object..js (module.js:380:10) at Module.load (module.js:306:31) at Function._load (module.js:272:10) at require (module.js:318:19) at Object.<anonymous> (/root/Repos/nodepad/app.js:10:16) at Module._compile (module.js:374:26) at Object..js (module.js:380:10) 大多数情况下,我是一个完整的noob在这里,所以我真正需要的不是一个“做到这一点,使其工作”的答案,但如果你不介意,解释这个错误的实际原因是什么。 如果需要的话,我可以发布我现在的实际代码,如果这是一个令人痛苦的简单问题,请道歉。 models.js: var mongoose = require('mongoose'); mongoose.model('Document', { properties: ['title', 'data', […]

res.json()和res.end()之间的性能差异

我想用Node和Express发送一个JSON响应。 我试图比较res.end和res.json的性能。 版本1:res.json res.json(anObject); 版本2:res.end res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(anObject)); 运行一些基准,我可以看到第二个版本比第一个版本快了近15%。 如果我想发送一个JSON响应,是否有一个特殊的原因,我必须使用res.json ?

我怎样才能在express.js玉器模板中进行降价?

我使用快速js框架。 我有一个从数据库markdownifiedstring,并希望在我的玉模板呈现为HTML。 我安装了node-markdown,想要这样渲染它: app.js var md = require("node-markdown").Markdown; template.jade – each note in todo.notes div= md(note.string) 但是,它不会打印出任何东西…有什么build议吗? 谢谢! 编辑:解决它自己,只是忘了把我的看法的MDvariables…

在node.js(快速框架)中build立访问日志

我想知道是否node.js (或expression框架)有任何内置的访问日志logging像grails例如? 我有grails应用程序运行在tomcat上,它会自动生成/apache-tomcat-7.0.42/logs/localhost_access_log.2013.10.30.txt文件,其中有关于请求响应的日志如下所示: [30/Oct/2013:00:00:01 +0000] [my-ip-address] [http-bio-8080-exec-18] "GET /my-service/check HTTP/1.0" [200] [took: 1 milis] 这个日志是由系统自动编写的,我不必担心这个。 那么node.js呢? 谢谢你的帮助! 伊万

如果没有req.session.save(),会话将不会保存在Node.js中

我正在使用Node.js,Express和Redis构build一个网站进行会话pipe理。 无论什么原因,如果我有一个会话variables(在这个例子中是isLoggedIn ),并刷新页面,variables不会被保存,但是,如果我设置variables后调用req.session.save() ,它会得到保存到Redis(redis-cli监视器显示 – 不调用save()表明该variables不存在,而调用save()显示它)。 我正在使用它来设置和启动服务器: var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var swig = require('swig'); var session = require('express-session') var RedisStore = require('connect-redis')(session); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); […]

如何在NodeJs中使用asynchronous数据源创build可读stream?

环境: NodeJS,Express,DynamoDB(但真的可以是任何数据库) 场景:需要读取大量logging并作为可下载文件返回给用户。 这意味着我无法一次缓冲所有的内容,然后将其发送到Express的响应中。 此外,我可能需要多次执行查询,因为所有数据可能不会在一个查询中返回。 build议的解决scheme:使用一个可读的stream,可以传送到Express中的响应stream。 我开始创build一个从streaminheritance的对象.Readable并实现了一个推送查询结果的_read()方法。 问题是在_read()中调用的数据库查询是asynchronous的,但是stream.read()是同步方法。 当stream被传送到服务器的响应时,在db查询甚至有机会执行之前,调用多次该读取。 所以查询被调用多次,甚至当查询的第一个实例完成并执行推(空),其他查询完成,我得到一个“EOF后”(错误)。 有没有办法正确使用_read()? 我应该忘记_read(),只是在构造函数中执行查询和push()结果? 我应该执行查询并发出数据事件而不是push()? 谢谢 function DynamoDbResultStream(query, options){ if(!(this instanceof DynamoDbResultStream)){ return new DynamoDbResultStream(query, options); } Readable.call(this, options); this.dbQuery = query; this.done = false; } util.inherits(DynamoDbResultStream, Readable); DynamoDbResultStream.prototype._read = function(){ var self = this; if(!this.done){ dynamoDB.query(this.dbQuery, function(err, data) { if (!err) { try{ for(i=0;i<data.Items.length;i++){ self.push(data.Items[i]); } […]