Tag: node.js

在OSX上安装和运行MongoDB

如果有人能在这里提供一些见解,我将非常感激。 我是MongoDB的新手,对于命令行(相对)是新手。 我有一个express / node.js应用程序在MongoDB本地成功运行,但重新启动我的电脑后,我试图重新启动Mongo服务器,它开始给出错误,不会启动。 从那以后,我重新安装了Mongo几次才发现相同的错误发生。 这是我收到的: privee:mongodb-osx-x86_64-2.4.6 jonlinton$ ./bin/mongo MongoDB shell version: 2.4.6 connecting to: test Mon Aug 26 14:48:47.168 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145 exception: connect failed 我错过了一个步骤? 我应该创build一个configuration文件? 一些基本的指导将是非常有帮助的。 在此先感谢您的任何见解。

无法安装节点npm的任何软件包

我试图通过npm安装一些节点包,但不会去。 我已经尝试安装/ unistall /更新节点,但似乎没有工作。 我正在使用Ubuntu的12.04 – 这是我想如何安装包: npm install underscore npm http GET http://registry.npmjs.org/underscore npm http 404 http://registry.npmjs.org/underscore npm ERR! registry error parsing json npm ERR! SyntaxError: Unexpected token < npm ERR! <html> npm ERR! <head> npm ERR! <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> npm ERR! <script type="text/javascript" language="JavaScript" src="http://img.sedoparking.com/registrar/dopark.js"></script> npm ERR! </head> npm ERR! <body style="display: […]

内存限制在Node.js(和铬V8)

在networking的很多地方,你会看到: 什么是节点进程的内存限制? 答案是: 目前,默认情况下,v8在32位系统上具有512mb的内存限制,在64位系统上具有1gb的内存限制。 通过将-max-old-space-size设置为最大值〜1GB(32位)和〜1.7GB(64位),可以提高限制,但build议您将单个进程拆分为多个工人如果你正在打内存限制。 有人可以确认这是情况,因为node.js似乎经常更新? * 更重要的是,在不久的将来会是这样吗? * 我想写的JavaScript代码,可能不得不处理4GB的JavaScript对象(速度可能不是问题) 如果我不能在节点上做,我最终会在java(在一个64位的机器上)做,但我宁愿不…

如何通过Socket.io防止Node.js中的分布式拒绝服务攻击?

我最近一直在学习node.js和socket.io。 我的问题是如何保护服务器免受客户端攻击? 这是我的服务器代码 io.sockets.on('connection', function (socket) { //users.push(socket); socket.on('message', function (data) { socket.on('disconnect', function () { }); socket.on('bcast', function (data) { socket.emit('news', { 'data': data }); socket.broadcast.emit('news', { 'data': data }); }); socket.on('login', function(data){ socket.emit('login', {'data': [ socket.id, data ] }); }); }); }); 例如,如果客户使用chrome开发工具来执行stream动的代码 for(var i = 0; i<99999999999; i++) { socket.emit('bcast', {data: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}); […]

node.js + mysql连接池

我试图找出如何构build我的应用程序使用MySQL最有效的方式。 我正在使用node-mysql模块。 其他线程build议使用连接池,所以我设置了一个小模块mysql.js var mysql = require('mysql'); var pool = mysql.createPool({ host : 'localhost', user : 'root', password : 'root', database : 'guess' }); exports.pool = pool; 现在,每当我想查询MySQL我需要这个模块,然后查询数据库 var mysql = require('../db/mysql').pool; var test = function(req, res) { mysql.getConnection(function(err, conn){ conn.query("select * from users", function(err, rows) { res.json(rows); }) }) } 这是好的方法吗? 除了非常简单的一个,其中一切都在主app.js脚本中完成,所以我真的不能find太多的使用mysql连接的例子,所以我真的不知道公约/最佳实践是什么。 我应该每次查询后都使用connection.end()吗? 如果我忘了它在什么地方呢? […]

关系数据库不适合Node.js吗?

最近我一直玩Node.js一点点。 在我个人的情况下,我使用了MongoDB,部分原因是因为它非常简单,部分原因是Mongoose似乎是一个非常简单的方法来开始使用它。 我注意到,在使用Node.js时,似乎对于关系数据库有一定程度的反感。 与Node.js生态系统中的非关系数据库相比,它们好像得不到支持,但我似乎无法find一个简明的理由。 所以,我的问题是, 为什么关系数据库比Node.js更适合使用比MongoDB更好的select呢? 编辑:只是想澄清一些事情: 我特别不在寻找与我正在构build的特定应用程序有关的细节 我也不是在寻找非技术性的原因(例如,我没有像“Node和MongoDB都是新的,所以开发人员一起使用它们”之类的答案) 我所寻找的仅仅是技术上的原因。 例如,如果有一个技术原因,为什么关系数据库在与Node.js一起使用时performanceexception差,那么这就是我正在寻找的东西(请注意,从迄今为止的答案来看,案子)

为什么build议通过v6.2.0的node.js v4.4.5“对于大多数用户”?

几年前,我使用了node.js作为开发项目,而这个应用程序暂时有些“不可用” – 它需要保持在线状态,需要保持安全,但是不需要太多的关注。 它目前在node.js v0.10.32上运行,但现在我想投资于“最终”迁移到长期支持(LTS)版本,以便在可预见的将来更容易维护。 乍一看,node.js主页看起来像v4.4.5显然是唯一可用的LTS版本: 但是,如果我点击LTS时间表链接,它会讲述一个不同的故事。 据我所知,node.js的第6版也将被定为LTS版本,支持比版本4晚一年结束。 鉴于: v6.2.0是一个版本化版本 v6据称将在2019-04-01之前接受LTS维护 从理论上讲 ,v6.x中的任何更改都不会破坏向后兼容性 为什么我会打扰升级到V4而不是V6? 似乎v4买了一年的安全补丁,但没有额外的兼容性保证?

yarn.lock和npm shrinkwrap有什么区别?

最近我尝试用纱线安装我的节点包。 它工作的很好,比NPM快很多。 yarn自动产生yarn.lock 。 我们已经有了NPM shrinkwrap( npm-shrinkwrap.json )。 他们之间有什么区别? yarn.lock比npm- yarn.lock有什么优势吗?

如何在node.js应用程序之间共享代码?

我有几个节点中的应用程序,都共享我写的几个模块。 这些模块不能通过npm获得。 我希望能够在应用程序之间自由分享,但我不想复制目录,也不依赖于Git。 而且使用符号链接来做这个也不是很大。 我想安排这样的目录: app1 server.js node_modules (public modules from npm needed for app1) lib (my own modules specific to app1) app2 server.js node_modules (public modules from npm needed for app2) lib (my own modules specific to app2) shared_lib (my own modules that are used in both app1 and app2) 我看到的问题是,shared_lib中的模块似乎弄糊涂到哪里去find哪些应用程序运行在node_modules目录中的模块。至less我认为这是问题所在。 那么….什么是避免重复文件的好方法呢? (注意,我不关心node_modules中的东西的重复,因为这些不是我的代码,我不检查它们到Git等)

承诺callback承诺回报

关于这两个重要来源: 新西兰 – 承诺诺言链条和MDN诺言 ,我想问一下: 每次我们从promise履行处理程序返回一个值时,该值是如何传递给从同一个处理程序返回的新的promise的? 例如, let p1 = new Promise(function(resolve, reject) { resolve(42); }); let p2 = new Promise(function(resolve, reject) { resolve(43); }); let p3 = p1.then(function(value) { // first fulfillment handler console.log(value); // 42 return p2; }); p3.then(function(value) { // second fulfillment handler console.log(value); // 43 }); 在这个例子中, p2是一个承诺。 p3也是p1履行处理程序的承诺。 然而p2 !== […]