Tag: expression

express.jsless编译器:无法工作

app.js: app.use(express.compiler({ src: __dirname + '/public', enable: ['less']})); app.use(express.static(__dirname + '/public')); 在我的玉石看来: link(rel="stylesheet", type="text/css", href='/app/stylesheets/app.less) 我有更less的文件:public / app / stylesheets / app.less 当我请求我在html头部的页面时: <link href="/app/stylesheets/app.less" type="text/css" rel="stylesheet"> 并注意到在服务器控制台。 1)那么为什么expression式甚至不会尝试编译app.less? 应该是? 2)如果一切正确:应链接在HTM是 <link href="/app/stylesheets/**app.less**" … > 或者表示应该在渲染时更改文件的扩展名? <link href="/app/stylesheets/**app.css**" … > ?

从节点事件process.stdin.on(“data”)收到的数据中删除新行字符

我一直在寻找这个答案,但无论使用什么方法,似乎都不会在我的string结尾处切断换行符。 这里是我的代码,我试图使用str.replace()来摆脱新的行字符,因为它似乎是这个问题的标准答案: process.stdin.on("data", function(data) { var str; str = data.toString(); str.replace(/\r?\n|\r/g, " "); return console.log("user typed: " + str + str + str); }); 我在控制台输出中重复了三次str对象来testing它。 这是我的结果: hi user typed: hi hi hi 正如你所看到的,在每个str之间还有新的行字符被读取。 我已经尝试了str.replace()的一些其他参数,但似乎没有工作在摆脱新的行字符。

在Express.js中使用会话MemoryStore不定义req.session

我用Express.jsbuild立了一个Node.jstesting服务器,如下所示: var express = require('express'); var MemoryStore = express.session.MemoryStore; var app = express.createServer(); app.configure(function() { app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(app.router); app.use(express.session({ store: new MemoryStore(), secret: 'secret', key: 'bla' })); }); app.get('/', function(req, res){ console.log(req.session); res.end("html"); }); app.listen(3000); 为什么console.log(req.session)打印出未定义? 我没有正确使用它吗? 为了将variables保存到用户的会话中,我需要做些什么? 客户收到一个存储为他的cookie的SID,但是我不能给req.session分配任何属性,因为它没有被定义。 感谢任何提示,以解决这个问题! 🙂 这是我使用的版本: ├─┬ express@2.5.9 │ ├─┬ connect@1.8.7 │ │ └── formidable@1.0.9 │ ├── mime@1.2.4 │ […]

在节点JS中使用Express进行查询string的预路由

我试图用express来parsing查询string,以防某些参数被设置,并在实际路由发生之前执行一小段代码。 用例是获取一个可以设置的特定值,而不依赖于正在使用的链接。 我使用快递'function,通过使用next()传递给下一个可能的规则的东西。 到目前为止,我试过了 – 在所有的app.get / post-rule-block的顶部: app.get('[?&]something=([^&#]*)', function(req, res, next) { var somethingID = req.params.something; // Below line is just there to illustrate that it's working. Actual code will do something real, of course. console.log("Something: "+somethingID); next(); }) app.get('/', site.index); 并且: app.param('something', function(req, res, next) { var somethingID = req.params.something; console.log("Something: "+somethingID); next(); […]

nodejs与快速静态文件挂起

问题:如果我注释掉express ['static']这一行,代码就会完美运行。 如果我包含它(或更改顺序),则应用程序会在响应之前挂起一段时间。 重新创build:运行应用程序,加载浏览器并转到127.0.0.1:51783不断刷新页面(或使用curl),控制台会给你一个类似于: GET / 1 ms 然后,当超时启动并发送了15个请求时,服务器变为无响应,您将得到以下结果: Server Now Unresponsive but requests queued GET / 35549 ms app.js var http = require('http'); var express = require('express'); var app = express.createServer(); app.use(express.logger({ format: '\x1b[1m:method\x1b[0m \x1b[33m:url\x1b[0m :response-time ms' })); app.use(express.bodyParser()); app.use(express['static'](__dirname + '/')); //Comment me and all works perfectly! app.listen(51783); http.globalAgent.maxSockets = 500; //doesn't help […]

在express.js中查看当前所有活动的会话

我发现了许多其他语言的类似问题 – ASP.net,Django等…但是,我对Node.js的Express.js感兴趣。 我如何查看当前活动的所有会话?

ExpressJS设置/获取/使用Cookie

请求中无法获得设置的cookie。 我设置了我的cookie response.cookie('name', 'My name'); 我想以这种方式得到我的cookie,之前它工作,但我改变了快速configuration,我不知道什么似乎是现在的问题。 request.cookies is and empty Object 我的快捷configuration: var express = require('express'), api = require('./routes/api'); var app = express(); app.configure(function () { app.set('port', process.env.PORT || 3000); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); //app.use(express.bodyParser()); app.use(express.compress()); // New call to compress content app.use(express.cookieParser()); app.use(express.session({secret: 'secret'})); app.use(app.router); app.use(express.methodOverride()); //app.use(express.static(__dirname + '/public')); }); app.all('*', function(req, res, next) { […]

ExpressJS – 如何处理同时发生的请求? 请求似乎阻止彼此。

我有以下一段代码 var express = require('express'); var routes = require('./routes'); var http = require('http'); … app.get('/a',function(){ Card.findCards(function(err, result){ //Mongoose schema res.send(result); //Executes a query with 9000 records }) }); app.get('/b', function(req, res){ res.send("Hello World"); }); 我发现当我在localhost / a上获取时,大约需要2.3秒才能完成。 这并不奇怪,因为它从数据库中获取了相当多的数据。 不过,我发现如果我/ B正在加载时,B不会显示。 就好像呼叫/ a阻止对/ b的呼叫一样。 这是expression如何工作? 我总是假设个别路由是asynchronous的,因为他们采取callback,但似乎是明文一次只能处理一个请求。 直到res.end()被调用,没有其他请求得到处理。 我是否缺less我需要的configuration? 作为参考,这是我如何连接到mongoose mongoose.connect(dbConnectionString, {server:{poolSize:25}}); 这是我的http服务器初始化部分 http.globalAent.maxSockets = 20; // […]

超级testing表示中间件

发现以下关于如何testing中间件的提示: https://github.com/visionmedia/express/blob/master/test/req.xhr.js 我想知道为什么我的testing总是通过。 直到我注意到,当我从expression复制testing他们performance相同。 我试图搞砸了,但他们不断传递: https : //github.com/visionmedia/express/blob/master/test/req.xhr.js 我在这里错过了什么? it('should return true when X-Requested-With is xmlhttprequest', function(done){ var app = express(); app.use(function(req, res){ req.xhr.should.be.false; //set to false, to fail the test but it still passes res.end(); }); request(app) .get('/') .set('X-Requested-With', 'xmlhttprequest') .end(function(res){ done(); }) })

IncomingMessage中止事件

在Node(4.2.3)中有这个基本的express(4.13.3)服务器。 //blah blah initialization code app.put('/', function(req, res) { req.on('close', function() { console.log('closed'); }); req.on('end', function() { console.log('ended'); }); req.on('error', function(err) { console.log(err); }); res.send(200); }); 然后我使用cURL来模拟file upload,如下所示: curl http://localhost:3000/ -X PUT -T file.zip 它开始上传(虽然没有任何反应),当它结束时,事件end 。 当我用Ctrl + C中止上传时,问题就开始了。 没有事件发生。 什么都没发生。 req对象从IncomingMessageinheritance,从而inheritanceReadable , Stream和EventEmitter 。 是否有任何事件发生这样的堕胎? 有什么方法可以知道客户端是否中止file upload? 首先编辑: User @AwalGarg提出了req.socket.on('close', function(had_error) {})但我想知道是否有任何解决scheme,这是不使用套接字?