我应该在收到304后closures代理连接吗?

我有一个HTTP请求/回应问题。 比方说,我有一个代理服务器,只是将客户端的请求转发给第三方服务器,第三方服务器的回应给客户端: var http = require('http'); var url = require('url'); http.createServer(function (req, res) { var opts = { hostname : 'www.example.com', port : 80, path : req.url, method : req.method, headers : req.headers }; opts.headers.host = opts.host; var proxyReq = http.request(opts, function (proxyResponse) { res.writeHead(proxyResponse.statusCode, proxyResponse.headers); proxyResponse.pipe(res); }); req.pipe(proxyReq); }).listen(3000); 假设客户端是caching感知的(比如浏览器),并且它传递了一个if-modified-since或者if-none-match (或者其他)头部,导致第三方服务器响应一个304状态码。 在技​​术上,服务器不应该发送一个正文,客户端在收到304之后不关心响应主体。 通过在服务器的代理响应处理程序中这样做是否有意义(并且会节省任何带宽/资源),这些服务器错误地使用304: var […]

我如何处理JavaScript中的正则expression式边界的收缩

我有一个nodejs脚本读入一个文件并计算词频。 我目前每行都进入一个函数: function getWords(line) { return line.match(/\b\w+\b/g); } 这匹配几乎所有东西,除了它忽略了收缩 getWords("I'm") -> {"I", "m"} 然而,我不能只包括撇号,因为我想要匹配的撇号是字的边界: getWords("hey'there'") -> {"hey", "there"} 有没有一种方法来捕捉收缩,同时仍然把其他撇号作为单词边界?

Nodejs + webRTC聊天网页小工具

我的要求是我有一个聊天应用程序使用webRTC和nodejs。 现在我必须为聊天模块开发网页小部件,以便用户可以轻松地将该小部件与其网站集成。 我没有使用nodejs和webrtc聊天小部件的经验。

时刻15日

我开发一个简单的应用程序,显示每日预算,直到下一次付款。 为此,我正在使用momentJS。 问题是我的应用程序中的逻辑是错误的。 我先find哪一天,然后find这个月的第一天( date(1) ),然后我总结1个月和14天。 但是,无论何时下个月(如现在-02/12),当然会告诉我,未来的15日是在2月份。 长话短说,我如何find未来的第15个使用时刻? 这是我的申请: $scope.nextDate = moment().date(1).add(1, "months").add(14,"days"); //calculate when is the next 15th $scope.difference = Math.floor(moment.duration($scope.nextDate.diff($scope.today)).asDays()); 提前致谢!

如何在Node.js的Bookshelfjs中连接两个表

我在MySQl DB中有两个表格: 顾客: cust_ID(PK) CUST_NAME trans_ID(FK) 交易 trans_id(PK) trans_amount 在Node.js中,我为这两个表创build了两个模型,现在我想在这两个基于trans_id的表上进行Inner Join。 我没有得到如何做的想法。 var Transaction = bookshelf.Model.extend({ tableName: 'Transaction' }); var Customer = bookshelf.Model.extend({ tableName: 'Customer' });

比较Mongoose查询中的ObjectID

我正在尝试更新扩展的Mongo数据库中的每个文档。 我的计划是从最年轻,最近创build的文档开始,然后从这里开始,一个一个地查询下一个最早的文档。 问题是我的Mongoose查询正在跳过同一秒内创build的文档。 我认为大于/小于运营商将在同一秒生成_ids工作。 但是现在数据库中有150个文件,这个函数只有8个循环,从最小的文件到最老的文件。 这是我在recursion节点循环中的Mongoose查询: function loopThroughDatabase(i, doc, sizeOfDatabase){ if (i < sizeOfDatabase) { (function(){ myMongooseCollection.model(false) .find() .where("_id") .lt(doc._id) .sort("id") .limit(1) .exec(function(err, docs) { if (err) { console.log(err); } else { updateDocAndSaveToDatabase(docs[0]); loopThroughDatabase(i + 1, docs[0], sizeOfDatabase); //recursion here } }); })(); } } loopThroughDatabase(1, youngestDoc, sizeOfDatabase);

如何使用mongoose中的聚合查询过滤$ match等于对象值

我在Mongo数据库中有以下logging { "_id" : ObjectId("54a0d4c5bffabd6a179834eb"), "is_afternoon_scheduled" : true, "employee_id" : ObjectId("546f0a06c7555ae310ae925a"), "currDate" : ISODate("2014-12-28T18:30:00Z"), "modified_date" : ISODate("2014-12-29T04:12:53.677Z"), "modified_by" : ObjectId("541a9c223416b36f67cfbfe8"), "__v" : 0, "manager_schedule" : { "afternoon_schedule_details" : { "event" : ObjectId("54507897cecff53914c82b6d"), "is_afternoon_scheduled" : true }, "modified_by" : ObjectId("541a9c223416b36f67cfbfe8"), "modified_date" : ISODate("2014-12-29T04:13:00.432Z") } } 我想过滤聚集与$匹配等于employee_id。 我在mongoose中使用下面的查询,但我没有得到任何查询的结果。 方法或查询有问题。 但是当我直接在MongoDB中运行这个查询,我得到了正确的结果。 在这方面需要帮助。 Availability.aggregate() .match( { employee_id : "546f0a06c7555ae310ae925a" […]

在多个expressjs路由中共享elasticsearch客户端

我试图通过创build单独的文件来将我的巨大的expressjs路由重新组织成更小的块。 但是,有几个需要连接到elasticsearch客户端来执行search: 路线/ index.js var router = require('express').Router(); var models = require("../models"); var es = require('elasticsearch'); var es_client = new elasticsearch.Client({ host: 'localhost:9200', log: 'trace' }); router.get('/search', function(req, res) { // Do search in elasticsearch // es_client.search({……}); }); module.exports = router; 路线/ user.js的 var router = require('express').Router(); var models = require("../models"); var es = require('elasticsearch'); […]

无法使用mongoose,Node.js将数据插入到mongoDB中的Document的字段中

我已经尝试了所有我能想到的,但我仍然无法将任何数据插入到我的MongoDB数据库。 当接收到数据(tweets)时,我会logging所有的东西来检查数据types是否与模式中字段的types相匹配,这似乎没问题,但插入到数据库中的数据只是一个空的MongoDB文档。 我的模式: var mongoose = require('mongoose'); var tweetSchema = new mongoose.Schema({ userName: {type: String, required: true}, imageUrl: {type: String}, bannerUrl: {type: String}, text: {type: String}, hashTag: {type: String} }); module.Exports = tweetSchema; 我的模特: var mongoose = require("mongoose"); var tweetSchema = require("../schemas/tweet.js"); var Tweet = mongoose.model('Tweet',tweetSchema,"tweets"); module.exports = Tweet; 我尝试将文档插入到我的mongoDB中的应用程序部分: var Twitter = require('node-tweet-stream'); require("./data/connectDB.js"); […]

检查快速请求数据是否是数组

我正在使用Express 3.x API服务器(不要问我为什么不升级到4.x;我不能控制这个),而且我试图实现对批量请求的支持一个特定的终点。 端点目前支持常规请求(需要一个JSON对象),但是我希望它也能够获取JSON对象的数组,例如: POST /api/posts Body: [ { "title": "Hello World", "text": "blah blah" }, { "title": "Hello World 2", "text": "blah blah blah" } ] 当我尝试使用req.body访问请求的单个请求的req.body ,我可以检索数据就好(这只是一个常规的JSON对象)。 但是,当我发送数组时,我发现数据被parsing为对象(?)而不是数组。 req.body = { "title": "Hello World", "text": "blah blah" }; typeof req.body; // object req.body.toString(); // [object Object] req.body = [ { "title": "Hello World", […]