如何在node.js中使用原型

我在nodejs上编写我的第一个模块。 我需要从谷歌cachingparsing我的网站。 post是桌子的地图。 当我尝试使用这个模块,我有这个错误:“types错误:不能设置未定义的属性”原型“如何解决这个错误?这是我的代码: module.exports = function Post(documentDOM,options) { this.opts = $.extend({id:0,author_id:0},options); this.doc = documentDOM; this.post = { id: 0, name: '', alt_name: '', notice: '', content: '', author: '', author_id: 0, }; } module.exports.Post.prototype = { init: function() { this.post.id = this.opts.id; this.post.author_id = this.opts.author_id; }, content: function() { content = this.doc.find('.fullnews-content').html(); if(!content.length) content […]

我可以通过Mongo中的嵌套数组中的元素进行sorting吗?

比方说,我有一个在MongoDB中的对象具有嵌套数组的集合。 我想基于数组的特定元素的值进行sorting。 这可能吗? 例如(我只是做了这个例子),如果我有一个电影types(动作,喜剧,浪漫)和用户提交的例子集合,我可以find所有对象提交给定的用户提交sorting的电影date? 例如,我想find“Aaron”提交示例的所有types,按“Aaron”示例的年份sorting。 它几乎就像一个需要在哪里的条款。 > db.movi​​es.find()。pretty(); { "_id" : ObjectId("4f2f07c1ec2cb81a269362c6"), "type" : "action", "examples" : [ { "title" : "Gladiator", "year" : 2000, "submitter" : "Aaron" }, { "title" : "Mission Impossiple", "year" : 1996, "submitter" : "Bill" }, { "title" : "The Terminator", "year" : 1984, "submitter" : "Jane" } ] } […]

node.js + postgres数据库事务pipe理

我们有一个现有的SQL数据库,并且正在使用这个postgres驱动程序模块编写一个使用直接SQL访问它的node.js服务器: https://github.com/brianc/node-postgres 到目前为止,我找不到与postgres一起使用的事务pipe理节点模块。 有人知道吗? 最好有一些现实世界的使用? 其次,在更高层次上,我们正在评估node.js是否可以实际上将Javareplace为可能处理卷的服务器的真实解决scheme。 交易pipe理是我们必须解决的问题之一。 所以一些洞察也是有用的。 目前,我只是在节点服务器请求的开始处发出一个sql BEGIN,最后是一个ROLLBACK或COMMIT。 但是,我(或许显然)不熟悉与SQL事务pipe理有关的现实世界问题。 如果有人能简单地解释事务pipe理框架解决的问题,我会觉得它很有用。 编辑:我正在使用postgres驱动程序的内置连接池机制,并在http请求内的所有查询发出在从池中获得的同一连接。 首先发布BEGIN,然后无论具体的http请求是什么,然后是COMMIT或ROLLBACK。 谢谢。

在Express / Node中通过https强制请求

我在端口3100上运行了一个Express.js(v 2.5.8)(节点v0.6.12)服务器。它由Nginx前端实现,它将http和https请求代理到端口3100。 我想通过https强制某些url。 这是一个例子(应用程序是我的快递服务器): app.get('/applyNow', ensureSec, secure.showApplication ); ensureSec是我试图用来检查连接是否通过SSL的函数: function ensureSec(req, res, next) { if (req.session.ssl == true) { return next(); } else { req.session.ssl = true; res.redirect('https://' + url.parse(req.headers.referer).host + url.parse(req.url).pathname); } } redirect工作,但节点(超时后)抛出一个错误说:不能GET / applyNow 什么是redirect到ssl的正确方法?

在Ubuntu上安装并运行browserquest

我已经安装了node.js和必要的包来运行browserquest 。 我已经启动了浏览器服务器,它运行在端口8080上,当我到我的浏览器并键入http:// localhost:8080 /状态,我可以看到服务器正在运行,当前没有客户端连接。 我使用client / config / build_config.json文件中的configuration构build客户端 { "host": "http://127.0.0.1", "port": 8080 } 我在bin / build.sh中构build我的客户端。 然后我运行这个命令来创buildhttp-server来提供客户端文件。 http-server path-to-client-build -p 8000 我可以通过访问http:// localhost:8000 / index.html来查看带有httpserver的索引页面,但是当我尝试连接时,它说连接到服务器后卡住了。 注意:我正在使用这个http-server托pipe客户端文件http://search.npmjs.org/#/http-server

如何更新mongooseembedded式文档中的embedded式文档?

我在使用mongodb和mongoose的node.js中构build一个API。 目前,我在embedded式文档(模式中的模式)内embedded了一个文档,这个文档根本就没有保存到数据库中,而且我尽我所能,但没有运气。 我有用mongoose定义的模式: var BlogPostSchema = new Schema({ creationTime: { type: Date, default: Date.now }, author: { type: ObjectId, ref: "User" }, title: { type: String }, body: { type: String }, comments: [CommentSchema] }); var CommentSchema = new Schema({ creationTime: { type: Date, default: Date.now }, user: { type: ObjectId, ref: "User" }, body: […]

Node.js – 为什么在使用摩卡和僵尸进行testing时会出现泄漏?

我试图让僵尸工作与摩卡,但除非我使用摩卡–ignore – 泄漏命令选项,我的testing总是失败,错误: Error: global leaks detected: k, i, name, chars, char 我的testing看起来就像这个线程中所解释的: Mocha和ZombieJS 我希望我可以在那里发布我的问题,但作为一个新手,我不能评论的线程,只问一个新的问题。 你有什么想法,为什么我得到这些泄漏? 我正在使用摩卡1.0.3和僵尸1.0.0。

nodejs – 为什么Node.js可以处理大量的simulteneous持久连接?

我知道Node.js擅长保持大量的同步持续连接,例如,许多聊天室的聊天室。 我想知道如何实现这一点。 我的意思是无论如何它使用TCP / IP封装的底层操作系统,为什么它可以处理永久连接,以至于其他人不能? 它有什么神奇的东西?

Benchmarkt socket.io

我想基准我的socket.io服务器。 我想testing服务器可以处理多less个并行连接和消息。 但是我的socket.io服务器在几分钟后崩溃了,当时我开始使用大约200个websocket进行基准testing。 我尝试使用node.js的集群模块将进程共享到内核。 当我使用集群模块时,一段时间后有些连接会断开。 我用于testing的服务器是具有以下属性的亚马逊云上的虚拟服务器: 7 GB的内存 20个EC2计算单元(8个虚拟核心,每个2.5个EC2计算单元) 1690 GB的实例存储 64位平台 I / O性能:高 API名称:c1.xlarge 这是基准客户端的代码: var fs = require('fs'); var io = require("socket.io-client"); var host = "http://localhost:3000"; var timeLog = fs.createWriteStream(__dirname+'/public/time.log',{flags:'a',mode:0666, encoding:'encoding'}); var count = 200; var sockets = []; var total = 0; var countTime = 0; var echo = exports; echo.start […]

testing一个函数与Mocha调用另一个函数

我有一个关于在Mocha中testingNode.js的具体情况的问题。 假设我在我的应用程序中有以下代码… function a() { //… } function b() { //… } function c() { if(condition) { a(); } else { b(); } } 如果我正在testing函数c,我怎么能确认函数a或函数b被调用? 有没有办法做到这一点?