我想安装Visual Studio社区2015,Python v2.7.3安装Windows 10机器上的bcrypt,但我得到以下错误。 节点版本v4.2.1 node-gyp v3.0.3 npm install bcrypt C:\Users\ASMIN\Desktop\M2\app>npm install bcrypt npm WARN package.json eapp@1.0.0 No description npm WARN package.json eapp@1.0.0 No repository field. npm WARN package.json eapp@1.0.0 No README data > bcrypt@0.8.5 install C:\Users\ASMIN\Desktop\M2\app\node_modules\bcrypt > node-gyp rebuild C:\Users\ASMIN\Desktop\M2\app\node_modules\bcrypt>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node -gyp.js" rebuild ) else (node rebuild ) Building […]
我试图安装我已经下载的一些示例Express应用程序的依赖关系,但所有的应用程序抛出相同的错误: c:\node\stylus>npm install -d npm info it worked if it ends with ok npm info using npm@1.1.1 npm info using node@v0.6.11 npm ERR! Couldn't read dependencies. npm ERR! Error: ENOENT, no such file or directory 'c:\node\stylus\package.json' npm ERR! You may report this log at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! or email it to: npm ERR! […]
如果我克隆一个数组,我使用cloneArr = arr.slice() 我想知道如何在nodejs中克隆一个对象。
我有一个node / angular项目,使用npm作为后端依赖pipe理,而bower作为前端依赖pipe理。 我想使用一个咕task任务来执行两个安装命令。 我一直无法弄清楚如何去做。 我试图使用exec ,但实际上并没有安装任何东西。 module.exports = function(grunt) { grunt.registerTask('install', 'install the backend and frontend dependencies', function() { // adapted from http://www.dzone.com/snippets/execute-unix-command-nodejs var exec = require('child_process').exec, sys = require('sys'); function puts(error, stdout, stderr) { console.log(stdout); sys.puts(stdout) } // assuming this command is run from the root of the repo exec('bower install', {cwd: './frontend'}, […]
我怎样才能知道数据已保存的模型的数量? 有一个Model.count()的方法,但它似乎没有工作。 var db = mongoose.connect('mongodb://localhost/myApp'); var userSchema = new Schema({name:String,password:String}); userModel =db.model('UserList',userSchema); var userCount = userModel.count('name'); userCount是一个对象,哪个方法可以得到一个真正的count ? 谢谢
我努力了: app.get('/', function(req, res, next) { var e = new Error('error message'); e.status = 400; next(e); }); 和: app.get('/', function(req, res, next) { res.statusCode = 400; var e = new Error('error message'); next(e); }); 但总是错误代码500被宣布。
这是我第一次使用Node.js,遇到了这个问题: 我已经通过IDE的插件启动了一个Node服务器。 不幸的是,我不能使用IDE的terminal。 所以我试图从命令行运行脚本。 这是问题 – 我正在使用Express模块,我的应用正在监听某个端口(8080)。 当我从命令行启动应用程序时,会引发此错误: events.js:71 throw arguments[1]; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:770:11) at HTTPServer.Server._listen2 (net.js:910:14) at listen (net.js:937:10) at HTTPServer.Server.listen (net.js:986:5) at Object.<anonymous> (C:\xampp\htdocs\node\chat\app.js:5:5) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:492:10) 即使我不是很确定这个错误可能是什么,我认为这是因为该应用程序正在监听已经在使用的端口。 所以我做了: netstat -an 我可以看到 TCP […]
我正在实现一个使用websockets和通过Telnet访问的控制台的应用程序。 在通过websockets和控制台build立的连接之间有一个通信。 我正在经历一个奇怪的问题: 如果我在控制台中input了某个string常量到一个已build立的套接字,它就可以正常工作。 如果我发送一个从控制台作用域收到的string它似乎打开一个新的套接字(不知道),因为在debugging日志中我看到它,并在浏览器端(websockets)它提醒我一个新的连接。 如果我发送本地string(而不是从另一个范围收到的),它发送正确。 (注释行:client.send(message)) 我在这里分享nodeJS代码,考虑到现在这是一个testing应用程序,所以它只能假设一个套接字和websockets连接: // Sample based on: http://elegantcode.com/2011/05/04/taking-baby-steps-with-node-js-websockets/ // Changed for sockets.io 6.x => 7.x var events = require('events'); var eventEmitter = new events.EventEmitter(); var http = require('http'); var socketIO = require('socket.io'); var static = require('node-static'); var port = 2000; var clientFiles = new static.Server('./client'); var httpServer = http.createServer( function(request, […]
当连接socket.io/node.js和redis pub / sub以试图创build一个由可以处理多个传输的服务器事件驱动的实时Web广播系统时,似乎有三种方法: 'createClient'一个redis连接并订阅频道。 在socket.io客户机连接上,将客户机join到socket.io机房。 在redis.on(“message”,…)事件中,调用io.sockets.in(room).emit(“event”,data)分发给相关房间中的所有客户端。 像如何在socket.io中重用redis连接? 'createClient'是一个redis连接。 在socket.io客户端连接上,将客户端join到socket.io房间并订阅相关的redis通道。 在客户端连接closures和收到消息调用client.emit(“event”,data)中引入redis.on(“message”,…)来引发特定客户端上的事件。 就像在使用socket.io中的RedisStore的例子中的答案一样 按照socketio-spec协议,使用RedisStore烘焙到socket.io中并从Redis中的单个“dispatch”通道“广播”。 Number 1允许为所有客户端处理Redis子和关联事件一次。 Number 2提供了一个更直接的挂钩到Redis pub / sub。 3号更简单,但对消息传递事件的控制很less。 然而,在我的testing中,所有连接的客户端都超过1个,performance出意外的低性能。 有问题的服务器事件是尽快发布到redis通道的1,000条消息,尽快分发。 性能是通过连接客户端的时间来衡量的(socket.io-client基于日志时间戳进入Redis列表进行分析)。 我猜测,在选项1中,服务器接收到消息,然后将其顺序写入所有连接的客户端。 在选项2中,服务器多次接收每条消息(每个客户端订阅一次)并将其写入相关的客户端。 在任何情况下,服务器都不会到达第二个消息事件,直到它传达给所有连接的客户端。 情况明显加剧,并发性上升。 这似乎与堆栈function的智慧不一致。 我想相信,但我正在挣扎。 这种情况(大量消息的低延迟分布)只是没有这些工具的选项(还?),还是我错过了一个把戏?
我试图围绕Electron (以前的Atom Shell)是如何工作的。 我来自传统的MVC风格的Web应用程序,浏览器通过路由系统调用控制器动作 ,然后控制器从存储(文件系统,数据库…)中提取数据,并呈现一个视图 ,这被发送回浏览器。 有些操作可能会返回JSON,因为它们是通过JavaScript / AJAX调用的,而不是实际导航到浏览器的浏览器。 我想创build,但作为一个跨平台的桌面应用程序。 我知道Atom Shell结合了一个Chromium浏览器和一个Node.js / v8运行时,但我不确定他们将如何进行通信。 我想我可以在Web服务器上运行一个完整的服务器(基本上是一些像Express一样的Node.js HTTP中间件),但是这会创build一个networking可达的服务器(这也可能会使防火墙绊倒) – 我想制作桌面的一个原因应用程序正是为了避免运行真正的服务器。 基本上像“普通”桌面应用程序中的MVP / MVVM模式。 有人能给我几个我想要做的事情的起点吗? 浏览器如何与节点运行时(“客户端”,因为他们称之为)通话?告诉它“嘿,获取我的logging与ID 12345”,并将客户端返回呈现的HTML,或浏览器只是得到一个blob的JSON回来,并通过JavaScript模板引擎呈现?