NodeJSlogging服务devise

我需要使用NodeJS和Mongo编写日志服务。 它每秒至less得到10,000个http请求,我不能丢失数据。 我正在使用负载均衡器的多个服务器,每个服务器也使用集群进行扩展。 有没有人有一个不丢失数据的想法? 我想也许我可以将请求保存在一个队列(sqs)中,并且每个间隔读取消息并向数据库中插入一个批量,如果失败将其保留在队列中,所以我不会丢失数据。 所有的服务器可以读写同一个队列吗? 有没有人有更好的主意? 谢谢。

如何从FTPstream的URL在meteor.js?

在MeteorJS中,我无法弄清楚如何从一个以“ftp”开头而不是通常的“http”开始的URL检索数据。 url是ftp://webftp.vancouver.ca/OpenData/json/drinking_fountains.json 在标准meteor http包可能模拟FTP的机会之外,我希望尝试使用meteor的HTTP.get(url)调用,但得到了错误: url must be absolute and start with http:// or https:// 我search谷歌和AtmosphereJSmeteor包提供FTP客户端function,但没有find任何东西。 有什么build议么?

使用Mocha和Chai编写testing用例,以便使用Error

我有一个简单的函数: var moment = require('moment-timezone'); exports.splitIntoDays = function(from,to) { var timeIntervals = []; var interval = {}; var start = moment(from); var end = moment(to); if(start.isAfter(end)) { throw new Error('From date ('+from+') is after To date ('+to+').Enter a valid date range.'); } var initial = start; console.log("Before loop"+initial.format("YYYY/MM/DD-HH:mm:ss")+" "+initial.diff(end,'hours')); while(end.diff(initial,'hours') > 24) { timeIntervals.push({"from" : […]

保护与PHP应用程序集成的Node.js应用程序

我有一个现有的第三方PHP Web应用程序(ELGG),我想扩展一个Node.js应用程序。 用户在PHP应用程序中通过检查他们提供的凭据来对MySQL数据库进行身份validation。 如何保护对Node.js应用程序的访问而不必重写Node中的validation代码? 有没有办法让用户只有login到PHP应用程序才能访问Node.js应用程序?

Heroku“状态从开始变为停止使用SIGTERM停止所有进程”

用这个Procfile启动我的Node.js Heroku应用程序后: web: node www/main.js 我曾经得到: 错误R10(引导超时) – > Web进程无法在启动60秒内绑定到$ PORT 所以我改变了我的Procfile到一个通用的命令来解决这个问题,从这里开始 ,使用: start: node www/main.js 60秒后我仍然closures。 这是现在的错误: 2015-01-20T13:04:01.452819 + 00:00 heroku [worker.1]:状态从最初变更为开始2015-01-20T13:04:02.728905 + 00:00 heroku [worker.1]:状态从开始to down 2015-01-20T13:04:03.434251 + 00:00 heroku [worker.1]:用命令node www/main.js启动进程2015-01-20T13:04:03.874370 + 00:00 heroku [worker.1 ]:使用SIGTERM停止所有进程2015-01-20T13:04:05.188100 + 00:00 heroku [worker.1]:进程已退出,状态为143 2015-01-20T13:04:05.930916 + 00:00 app [worker.1 ]:[Tue Jan 20 2015 13:04:05 GMT + […]

如何创build一个Brunch插件?

我想为Brunch构build一个插件,但我不知道从哪里开始。 Brunch插件API文档是我发现的最接近我的方法指南,但我不知道如何使用它。 理想情况下,我想要一个详细的教程,尽pipe从一开始就走,但我无法在Google上find任何东西。 有没有人有build立一个早午餐插件的提示?

有没有替代弃用的deferred.callback?

问题 我发现以下相当详细的模式通常出现在我的代码中,当我包含给我很难promisify对象的库: var object = crummyLibrary.create(); return new Promise(function(resolve, reject){ object.method('foo', function(err, bar){ if(err){ reject(err); }else{ resolve(bar); } }); }); 对于Promise.defer()这个过去并不那么冗长: var deferred = Promise.defer(); object.method('foo', deferred.callback); return deferred.promise; 但现在已经废弃了(出于很好的理由),但是我还没有find这个模式的一个很好的替代品。 我知道有这样的: return Promise.promisify(object.method, object)('foo'); 但是,由于context / receiver的传递,它感觉很尴尬。 我在找什么 我希望能取代旧的deferred.callback ,也许是沿着以下的路线: var promise = new Promise; object.method('foo', promise.callback); return promise; 或者可能: return new Promise(function(resolve, reject, callback){ […]

在Node.js POST请求中,Jadeforms返回空表示

我用express和node.js来创build一个飞行日志数据库的前端,作为我培训的一部分。 我已经确认我的input有名称 ,我的身体分析器设置为应用程序/ JSON ,并且我的路线出现在我的中间件声明后 ,但我的req.body对象保持未定义。 我的问题是为什么。 这里是我的玉器forms的一个领域: .row.col-sm-16 div.input-group.form-control form(action='',method='POST') div(data-role='fieldcontain') fieldset(data-role='controlgroup') label(for='HobbsOut') HobbsOut &nbsp &nbsp &nbsp input(id='HobbsOut',type='text',value='',placeholder='hobbs in generated',name='HobbsOut') 低于这个差距的每件事都会重复。 提交button: div.text-center button.btn.btn-default.input-group-button Submit buttondiv与'data-role'divsalignment。 相关路线: app.post('/logadd', ctrl.addFlight); 而相关的控制者: module.exports.addFlight = function (req, res) { console.log(req.body.HobbsOut); res.redirect('/loglist'); }; 目前我只是试图打印第一个字段,并将用户redirect到航class日志。 我在多个应用程序中遇到此问题。 我知道如何将用户input推入数据库是非常重要的。 任何和所有的帮助,不胜感激。

Mongoose:在find()之后填充

我是新来的mongo和节点js,这是我想要做的: 该API将根据查询来检查数据库中是否存在现有条目。 (a)如果没有现有文档,则创build一个新文档,填充,发送给客户端。 (b)如果文件存在,则返回文件,填充,发送给客户端。 问题:在情况(a)中,创build文档后,API向客户端发送“null”。 可疑: .populate()&.exec()在API完成创build新文档之前运行。 代码片段返回null: console.log('Inside IF' + video_res); // returns null 解决这个问题的最好方法是什么? model_video.findOne( video_entry, function(err, video_req) { // Send Back Object ID if (err) res.send(err); if (!video_req) { // Does not work console.log('—–STATUS : No Video Found'); model_video.create(video_entry, function(err, video_res) { console.log('Call back activated'); if (err) res.send(err); console.log('Response is ' + […]

在nodejs分叉进程之间共享数千个打开的websockets

我正在开发一个由移动应用程序,桌面应用程序和服务器组成的项目。 服务器将需要随时在桌面应用程序中维护一个开放的套接字(dropbox如何做!)。 移动应用程序打开后,移动应用程序和服务器之间将打开一个套接字,桌面应用程序将向移动应用程序发送事件(可能带宽相当低),反之亦然。 服务器最大的障碍是在一台相当普通的服务器上同时打开很多套接字。 大多数时候,由于人们不会使用应用程序,套接字将闲置。 我只有一个人,而且我不想在服务器成本上花费一大笔钱,所以我想我会selectnodejs,因为它能够以低内存使用率打开大量websocket(通常我会使用Java,但我认为内存将很快成为一个问题)。 我无法打包的问题是处理nodejs和cluster api。 由于集群API生成一个单独的nodejs进程,我将如何共享分叉进程之间的WebSocket连接? 如果我不能做到这一点,我必须保证,移动websocket是打开在同一个节点进程,它是桌面客户端websocket打开。 不知道我能做到这一点。 我有什么select?