从node.js连接到mongodb时发生ECONNREFUSED错误

我知道我正在做一些非常愚蠢和不好的事情,但我希望有人可以帮助我设置一个基本的数据库连接到mongodb从node.js在mac上。 我用自制软件安装了mongodb,似乎工作得很好。 我已经启动了服务器(mongod)作为本地login用户,并打开了第二个terminal,并确认可以使用mongo连接到它。 当我运行mongo时,我收到消息“连接到:localhost:27017 / test”,然后是命令提示符。 在mongo shell中运行一些命令似乎在那里工作。 将两个端子打开并运行。 我也确认我可以在本地主机:28017上访问web界面。 我安装了node.js并添加了mongoose包。 现在尝试使用超级简单的node.js应用程序(也作为本地login用户运行)进行连接: var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); 我收到以下错误 events.js:72 throw er; // Unhandled 'error' event ^ Error: connect ECONNREFUSED at errnoException (net.js:901:11) at Object.afterConnect [as oncomplete] (net.js:892:19) 把我的头靠在墙上试图让事情变得如此简单。 我错过了什么? 编辑:这里是从mongod的日志。 正如你所看到的,我尝试过多次,而且都是瞬间失败: Thu Dec 5 08:19:43.700 [initandlisten] MongoDB starting : pid=14412 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=mobadmins-MacBook-Pro-3.local 08:19:43.700 […]

为什么当mongodb的好处被认为是无模式时,mongoose使用模式?

我是一个mongodb的超级新手。 我正在使用mongoose从node.js访问mongodb,并知道如何使事情发挥作用,但是我不认为我理解它为什么会像这样工作。 最重要的是,我不明白为什么mongoose具有“图式”,当mongodb的突出特点之一是它没有图式。 有人能教导我吗? 谢谢。

什么是一个Node.js缓冲区的最大大小

根据Node.js缓冲区类文档缓冲区分配在V8堆的外部。 http://nodejs.org/docs/latest/api/buffers.html 原始数据存储在Buffer类的实例中。 缓冲区类似于整数数组,但对应于V8堆外部的原始内存分配。 缓冲区不能resize。 我需要读一个大文件(大于1GB),并尝试使用fd.readPath(),但从V8得到一个致命的错误,因为该文件大于1GB。 FATAL ERROR: v8::Object::SetIndexedPropertiesToExternalArrayData() length exceeds max acceptable value 这是由Googlelogging的。 http://code.google.com/p/v8/issues/detail?id=847 我想我会使用一个缓冲区,我正在运行一个64位版本的节点0.6.7,所以我的堆应该能够处理大文件。 $ file `which node` /usr/local/bin/node: Mach-O 64-bit executable x86_64 $ 但是,如果我尝试分配一个1GB的缓冲区,我得到同样的致命错误的V8。 var oneGigInBytes = 1073741824; var my1GBuffer = new Buffer(oneGigInBytes); //Crash //var mySmallerBuffer = new Buffer(oneGigInBytes-1); //Works console.log("done"); 如果一个缓冲区被分配到V8堆的外部,我想我可以分配一个大于1GB限制的缓冲区大小,但是上面的代码与readPath()打印的是相同的确切错误。 注释掉my1GBuffer实例并取消注释mySmallerBuffer的工作,所以看起来1GB是有限制的。 什么是Node.js缓冲区类实例的最大大小? 它是封顶在1GB? 我目前的解决方法是使用读取stream和和fs.pipe()。 var fs = require('fs'); process.chdir("/Users/joel/Desktop/testFiles/"); […]

如何使用Sequelize模型自动生成Sequelize CLI迁移?

我有一套Sequelize模型。 我想使用迁移,而不是数据库同步。 Sequelize CLI似乎能够做到这一点,根据这篇文章 :“当您使用CLI生成模型时,您也将获得免费的迁移脚本。” 如何从现有的Sequelize模型中使用Sequelize CLI自动生成迁移?

是否socket.io发出适当的callback?

最近我一直在使用socket.io,发现这个有趣的事情,我可以发出这样的函数callback。 我开始像这样在客户端发出: client.emit('eventToEmit', dataToEmit, function(error, message){ console.log(error); console.log(message); }); 然后我可以像这样从服务器端发起一个callback: client.on('eventToEmit', function(data, callback){ console.log(data); callback('error', 'message'); }); 一切工作正常,没有错误,但我有兴趣,如果做这样的事情是适当的,因为我没有看到任何类似的文件或任何例子到目前为止。

前端JavaScript框架与node.js

我开始学习像Backbone.js或Embers.js这样的前端JavaScript框架,我想在Node.js中做一些项目。 我一直在阅读一些文档,看起来这些框架是在单个页面中创build应用程序时使用的。 我习惯于开发分成几页的应用程序,我不知道这些框架是否会对我的项目更有帮助或是项目的负担。 我也想知道是否在服务器和客户端都使用JavaScript,因为我使用相同的语言,如果有任何种类的function我可以用来共享他们之间的代码,并且如果任何前端框架更适合因为这个Node.js。

为什么我们要为Angular 2.0安装Node.js?

我开始了关于Angular 2.0的教程,设置工作区的第一步是安装Node.js和NPM。 为什么我们要为Angular 2.0安装Node.js? 我不记得做这个angular1.X.

nodejs内存不足

今天我遇到一个奇怪的问题。 这对其他人来说可能是一个简单的答案,但是却让我难住了。 为什么下面的代码会导致内存错误? var cur = 167772160; var bcast = 184549375; var addresses = []; while (cur <= bcast){ cur += 1; addresses.push(cur); } addresses.length addresses // memory goes from a few megs to over a gig in seconds when trying to print this 我得到这两个错误之一…第一次,当我在节点的解释器中运行此代码和后者时,我通过nodeunit运行它: 致命错误:CALL_AND_RETRY_2分配失败 – 进程内存不足 致命错误:JS分配失败 – 进程内存不足

Socket.io:命名空间,渠道和合作

我有一个Node.js Web服务器,它运行一个使用Socket.io创build的顶层套接字服务器。 基本上,这工作。 我现在想要实现的是,连接的客户端被分组。 所以可能会有一些组成A组的客户和其他一些组成B组的客户。他们应该通过特定的URL( localhost:3000/A或localhost:3000/B来select他们属于哪个组。 在Socket.io中,我现在想发送消息给A组中的所有客户端,或者B组中的所有客户端或所有客户端,而不必查看他们的组。 这基本上就像是和房间聊天,你可以给特定房间内的所有客户或任何客户留言,不pipe他在哪个房间。 使用Socket.iodevise这样一个系统的最佳方法是什么? 到目前为止,我一直在尝试使用命名空间,这基本上可以创build组A和B,但是我无法将消息发送到所有客户端,无论他们在哪个房间。至less我不知道该怎么做这个。 我应该如何build模? 什么是我应该寻找的正确的条件? 更新:根据@sdedelbrock的答案,我可以使用命名空间或房间: 如果使用命名空间,我不能长时间发送给每个人,不pipe他们的命名空间。 这是因为io.sockets是io.of('')的快捷方式,当然这与命名空间不再匹配。 这意味着我应该使用房间,但是我想知道房间和命名空间之间的语义差异是什么。 简而言之:为什么同一个(?)想法有两个概念?

Nodejs:在哪里或如何编写复杂的业务逻辑?

最近我介绍了node.js和cool包,比如express和jade。 我有几个问题一直敲我的门: 如果我selectnode.js来构build我的下一个网站,我将使用JavaScript来编写我的服务器端复杂逻辑? 但我不认为你可以比较JavaScript与Java或Python来编写服务器端代码,因为它们拥有如此浩瀚的图书馆。 node.js真的是为了它吗? 或者我错过了什么? 我可以从node.js调用Java或Python吗?