在asynchronous摩卡testing中超时错误

我正在使用摩卡和应该testing简单的数据库查询,我想运行简单的Moongose模式函数的asynchronoustesting,但我每次都超时错误。 Error: timeout of 15000ms exceeded at null.<anonymous> (/usr/local/lib/node_modules/mocha/lib/runnable.js:165:14) at Timer.listOnTimeout [as ontimeout] (timers.js:110:15) 我甚至使用this.timeout(15000) ,也尝试了超时15000在摩卡命令,但没有成功,什么超时时间我给我得到这个错误。 只有同步testing通过。 以下是我想testing的testing和function。 我的摩卡testing: – describe('#getFacility()', function () { this.timeout(15000); it('should get facility successfully', function (done) { db.getFacilites(Data.testFacility, function (err, facilities) { if (err) throw err; facilities.Name.should.equal(Data.testFacility.body.Name); done(); }) }); }); 我的资料: – testFacility : { params: { clientId:"51c85c3267b6fc1553000001" } […]

为什么我们需要node.js中的缓冲区?

要使用节点在浏览器中显示文件的内容,我首先尝试了这一点: var express = require('express') , fs = require('fs') , app = express() , port = process.env.PORT || 5000; app.use(express.logger()); var data = fs.readFileSync('index.html'); app.get('/', function(req, res){ res.send(data); }); app.listen(port, function(){ console.log('Listenting on ' + port); }); 但是,这并没有如预期的那样工作。 浏览器实际上提供了index.html内容作为文件,我首先必须下载然后在文本编辑器中手动打开。 然后,我尝试使用缓冲区来做同样的事情: var express = require('express') , fs = require('fs') , app = express() , port = […]

基于JSON的数据库系统

我正在使用Node.js构build基于Web的聊天应用程序。 我有点build立它,而应用程序已经运行在一个Node.js PaaS和正在testing我的一堆朋友。 问题是,我不能在数据库服务上花费很多钱来存储聊天logging。 所以我正在devise一个复杂的基于文件的数据库系统就像SQLite。 虽然我知道SQLite做类似的工作,我想要以JSON格式存储数据。 原因很多。 一个值得注意的原因是,为了减lessCPU使用率,我只是将原始的JSON数据发送到客户端,在那里他们将使用AngualarJS正确渲染。 我的问题是: 你对这个方法有什么看法? 这种方法是垂直还是水平可伸缩的? 什么是可能的安全问题? 有没有其他方法可用? 请注意,此解决scheme仅适用于聊天logging等简单的数据存储。 我不会用这个方法来处理大型和严重的Web应用程序。 更新:我不想使用MongoDB或其他人,因为我负担不起这个项目。 我想将数据存储在一个平面文件中,并将其放置在磁盘中。 因为,很多PaaS提供商只需要1美元就可以提供1GB的磁盘空间,而1GB的MongoDB存储空间非常高……他们甚至向我们收取了数据传输量,PUT和GET数量等。

如何返回在url中请求的string?

如何获得请求string到一个可行的,如果有人去www.mypage.com/yo,我怎么能得到节点返回“哟”variables? var http = require('http'); var server = http.createServer(function (request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); var stringrequested = ?????? response.end(stringrequested); }); // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(8000); // Put a friendly message on the terminal console.log("Server running");

快速POST路由不能渲染页面

我试图显示一个页面使用邮政路线,但迄今没有运气。 该路线是从一个angular度控制器调用的。 POST路由被正确调用 – 我在节点控制台POST /search 200 673ms得到这个 – 但是页面不显示。 如果我直接从浏览器调用路由(即input地址),它工作正常。 任何帮助,将不胜感激。 我发现了一个类似的post ,但发布的解决scheme不适合我。 这是我的代码: angular度控制器 function SearchController($scope, $http){ $scope.product = {…}; $scope.search = function(form) { $http.post('/search', { product : $scope.product }); }; } 路线定义 var products = require('../app/controllers/products') app.post('/search', auth.requiresLogin, products.results) 路由控制器 exports.results = function (req, res) { // build query and fields var […]

node.js sendgrid如何附加pdf

我使用sendgrid在我的node.js应用程序中发送电子邮件。 我试图附上一个pdf的每一个组合都以我附加的pdf不可读取而告终。 我试过了: fs.readFile('public_html/img/Report.pdf',function(err,data){ var base64data = new Buffer(data).toString('base64'); sendgrid.send({ to : hexDecode(_.e), from : 'xxxxxxxxx@gmail.com', subject : 'Report', files : [{filename:'Report.pdf',content:'data:application/pdf;base64,'+base64data}], //files : [{filename:'Report.pdf',contentType:'data:application/pdf',url:'public_html/img/'Report.pdf'}], //files : [{filename:'Report.pdf',url:'public_html/img/'Report.pdf'}], html : 'bla bla' 有谁知道如何防止“加载PDF文档失败?

GridFS:清理所有未被引用的文件

我刚刚在MongoDB中的GridFS中存储东西。 在testing过程中,我注意到许多文件正在创build,但没有正确删除。 我有一个收集users ,其中有一个字段的avatar 。 它包含文件的ObjectId 。 现在我想有一些命令可以用来删除那些没有引用的files和chunks 。 有一个查询可以做到这一点? 也许'地图减less'? 另外我不知道如何正确删除node-mongodb-native GridFS-Files。

Node.js在评估引用的函数之前,AJAX路由返回数据

UPDATE 得到它的工作,但我仍然认为有一个问题。 如果将setTimeout计时器设置为非常长(如2000),则只会得到正确的返回数据。如果将其保留为200,则由于API调用尚未返回,因此callback函数将以空数据执行。 我已经更新了下面的代码。 build立: 我通过AJAX(jQuery)从前端发送获取值,然后使用该值调用Foursqaure API来获取相关场所列表。 这是工作“罚款”,除了事件的顺序变得棘手。 当我将GET值插入到函数的参数中进行求值时,我得到一个我没有要求的返回值,然后导致模板在我函数的另一个返回值之前在前端呈现 -给我一个我想要的。 而实际上我不认为它实际上正在退回。 刚刚login到控制台。 题: 我怎样才能通过AJAX到places.js的initGetVenues函数的结尾的JSON对象的过滤列表返回到前端? 语境: 我正在使用这个软件包连接到Foursquare: https : //npmjs.org/package/foursquarevenues 在前端的AJAX调用 $("#search-items").submit(function() { var placeQuery = $("#search-input").val(); $.ajax({ url: '/return/places/', data: {"passPlaceQuery": placeQuery}, type: 'get', dataType: 'html', success: function(data) { $("#search-results-list").html(data); }, }); return false; }); index.js [已更新] returnPlaces: function(req, res) { if (req.headers['x-requested-with'] === 'XMLHttpRequest') […]

NativeModule.require什么是这个function,我在哪里可以find它的来源?

我一直在研究重写Node.js在Cygwin上工作。 我可以直接按照源代码: NativeModule.require('path') path是我想要补丁的模块。 但是我不确定它到底在哪里。 任何指针? 我已经在Node.js头文件/ cc文件grep'ed,但单词“path”只出现一次,这是不相关的path分辨率。 那么,它在哪里呢?

处理将JS用于REST API的ASP MVC应用程序中的安全性

我有一个ASP MVC4网站。 本来,大部分的内容是通过控制器服务,如人们所期望的。 我已经将数据存储从SQL Server移动到MongoDB。 我还添加了很多ajax来更新数据客户端,而没有完整的刷新。 这工作正常,但我的控制器现在有很多采取JSON和返回JSON的方法。 我能够构build一个命中数据库的Node.js服务器,并且公开了完全相同的function,而不需要大量的C#。 我的JavaScript客户端现在正在调用Node.js REST API,这很好。 我的'安全'的代码(如添加一个新的用户)从服务器端命中相同的REST API。 我的问题是:我怎样才能妥善处理这个安全? 我有三种情况: GET api / messages:不需要安全性,我想通过Json REST API将我的网站的消息展示给任何感兴趣的人。 GET api / my / messages:我只有在用户login时才允许访问(获取用户的消息)。 POST api / users:这是一个只能从服务器调用的函数,没有别的东西能够使用它。 由于用户已经login到我的ASP网站,我怎样才能使用他们的login凭据来使用我的REST服务进行身份validation? 用户login时,客户端页面会定期点击更新。 有没有明智的/标准的方法来做到这一点? 其核心思想是客户端代码使用至less部分向公众开放的REST API,事实上API提供了我所有的业务逻辑 – 只有部分(如创build用户)被locking到超级pipe理员只。 提前致谢!