Tag: javascript

用grunt自动化npm和bower安装

我有一个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'}, […]

Socket.IO问题与控制字符

我正在实现一个使用websockets和通过Telnet访问的控制台的应用程序。 在通过websockets和控制台build立的连接之间有一个通信。 我正在经历一个奇怪的问题: 如果在控制台中input了某个string常量时,它会向一个已build立的套接字发送一个string常量。 如果我发送一个从控制台作用域收到的string它似乎打开一个新的套接字(不知道),因为在debugging日志中我看到它,并在浏览器端(networking套接字)它提醒我一个新的连接。 如果我发送一个本地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, […]

访问客户端JavaScript中的Express.js局部variables

好奇,如果我这样做是正确的,如果不是你们如何处理这个问题。 我有一个Jade模板需要呈现从MongoDB数据库检索到的一些数据,我也需要访问客户端JavaScript文件中的数据。 我正在使用Express.js并将数据发送到Jade模板,如下所示: var myMongoDbObject = {name : 'stephen'}; res.render('home', { locals: { data : myMongoDbObject } }); 然后在home.jade里面,我可以做这样的事情: p Hello #{data.name}! 其中写道: Hello stephen! 现在我想要的是也可以访问客户端JS文件中的这个数据对象,所以我可以操纵对象说一个button,然后将其返回到服务器来更新数据库。 我已经能够通过在Jade模板的隐藏input字段中保存“data”对象,然后在我的客户端JS文件中获取该字段的值来实现这一点。 在home.jade里面 – local_data = JSON.stringify(data) // data coming in from Express.js input(type='hidden', value=local_data)#myLocalDataObj 然后在我的客户端JS文件我可以像这样访问local_data: 在myLocalFile.js里面 var localObj = JSON.parse($("#myLocalDataObj").val()); console.log(localObj.name); 然而,这个string化/parsing业务感觉混乱。 我知道我可以将我的数据对象的值绑定到我的Jade模板中的DOM对象,然后使用jQuery获取这些值,但是我希望能够访问从客户端JS中快速返回的实际对象。 我的解决scheme是最佳的,你们将如何实现这一目标?

node.js中fs.createReadStream vs fs.readFile的优缺点是什么?

我正在用node.js搞清楚,发现了两种读取文件的方法,一旦确定它存在并发送了正确的MIMEtypeswriteHead: // read the entire file into memory and then spit it out fs.readFile(filename, function(err, data){ if (err) throw err; response.write(data, 'utf8'); response.end(); }); // read and pass the file as a stream of chunks fs.createReadStream(filename, { 'flags': 'r', 'encoding': 'binary', 'mode': 0666, 'bufferSize': 4 * 1024 }).addListener( "data", function(chunk) { response.write(chunk, 'binary'); }).addListener( "close",function() […]

如何监视Node.js的内存使用情况?

我如何监视Node.js的内存使用情况?

用Node.js实时刮取网页

什么是一个好的是用Node.js刮取网站内容。 我想创build一个非常非常快速的东西,可以执行kayak.com样式的search ,其中一个查询分派到几个不同的站点,结果被删除 ,并在客户端可用时返回给客户端。 我们假设这个脚本应该只提供JSON格式的结果,我们可以直接在浏览器或其他Web应用程序中处理它们。 几个起点: 使用node.js和jquery来抓取网站 任何人有任何想法?

使用Electron(Atom Shell)时,客户/服务器模型是什么?

我试图围绕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模板引擎呈现?

什么是Node.js与扭曲的用例?

假设一组开发人员在使用Python和Twisted编写服务器端Javascript时也同样舒适,那么Node.js什么时候比Twisted更合适呢(反之亦然)呢?

console.log javascript

我正在尝试在JavaScript中logging一个函数: console.log(callback) >>[Function] 我想看看这个function是什么 我可以这样做吗? 谢谢。

Nodejs:如何克隆一个对象

如果我克隆一个数组,我使用cloneArr = arr.slice() 我想知道如何在nodejs中克隆一个对象。