Tag: javascript

Grunt usemin和usemin准备多个目标

从usemin问题看来,usemin和useminPrepare支持最新版本中的多个目标: useminPrepare支持: https://github.com/yeoman/grunt-usemin/pull/162 https://github.com/yeoman/grunt-usemin/pull/206 usemin支持: https://github.com/yeoman/grunt-usemin/issues/57 我试过用以下configuration使用多个目标: useminPrepare: { foo: { dest: 'fooDist', src: ['foo/index.html'] }, bar: { dest: 'barDist', src: ['bar/index.html'] } }, usemin: { foo: { options: { assetsDirs : ['fooDist'] }, html: ['fooDist/**/*.html'], css: ['fooDist/styles/**/*.css'] }, bar: { options: { assetsDirs : ['barDist'] }, html: ['barDist/**/*.html'], css: ['barDist/styles/**/*.css'] } }, 但我收到以下错误: 运行“usemin:foo”(usemin)任务警告:不支持的模式:foo […]

节点js从不同的进程获取和设置数据

我已经完成了产生(subprocess)的节点应用程序和应用程序,应用程序有主机和端口: var exec = require('child_process').spawn; var child = exec('start app'); console.log("Child Proc ID " + child.pid) child.stdout.on('data', function(data) { console.log('stdout: ' + data); }); child.stderr.on('data', function(data) { console.log('stdout: ' + data); }); child.on('close', function(code) { console.log('closing code: ' + code); }); 一些应用程序将立即开始,一些应用程序将需要一些时间10 – 20秒,直到他们开始 。 现在我使用节点http代理来运行应用程序,问题是,当使用希望在运行之前运行应用程序,我得到错误。 任何想法如何以某种方式我可以解决这个问题? proxy.on('error', function (err, req, res) { res.end('Cannot run […]

使用Node.js监控Mongo的更改

我使用Node.js进行一些项目工作,我想监视我的Mongo数据库(集合)的变化,如果有东西被添加,基本上会激发一个事件。 任何人都知道这是可能的吗? 我正在使用node-mongodb-native驱动程序。 如果不是这样,我还想要从服务器(使用node运行)推送数据到客户端浏览器的任何可用的指针。

创build一个没有*浏览器的webRTC peer *,只需一个JavaScript解释器

我想创build一个WebRTC对等,它是一个简单的监听器/logging器,没有“演示”组件(即没有HTML / CSS)。 如果这是可能的(使用WebRTC JavaScript API),请告诉我可以使用的独立 JavaScript引擎(我正在考虑安装独立的V8引擎)。 谢谢。

Node.js:有什么技术来编写干净,简单的callback代码?

node.js代码被称为callback意大利面。 什么是最好的技术来克服这个问题,并写在Node.js干净,不复杂,易于理解的callback代码?

有没有可能调用function.apply而不改变上下文?

在一些Javascript代码(特别是node.js)中,我需要在不改变上下文的情况下调用具有未知参数集的函数。 例如: function fn() { var args = Array.prototype.slice.call(arguments); otherFn.apply(this, args); } 在上面的问题是,当我打电话apply ,我通过传递this作为第一个参数改变上下文。 我想传递args的函数被调用, 而不改变被调用的函数的上下文。 我基本上想这样做: function fn() { var args = Array.prototype.slice.call(arguments); otherFn.apply(<otherFn's original context>, args); } 编辑:添加更多关于我的具体问题的细节。 我正在创build一个Client类,其中包含有关连接的其他信息的套接字(socket.io)对象。 我通过客户端对象本身暴露套接字的事件侦听器。 class Client constructor: (socket) -> @socket = socket @avatar = socket.handshake.avatar @listeners = {} addListener: (name, handler) -> @listeners[name] ||= {} @listeners[name][handler.clientListenerId] = […]

无头node.js JavaScript浏览器的截图function?

是否有任何node.js的无头浏览器支持将渲染后的页面转储到文件中? 我知道phantomjs支持渲染到一个文件,但它不能在node.js上运行。 我知道zombie.js是一个node.js无头浏览器,但它不支持渲染到一个文件。

模板string作为对象属性名称

为什么JavaScript不允许模板string作为对象属性键? 例如,当我input: foo = {`bar`: 'baz'} 进入NodeJS REPL,它会抛出一个带有长堆栈跟踪的“Unexpected template string”的SyntaxError 。 属性值是好的,但是,这并不意外。 类似的错误发生在浏览器中,例如,Firebug抛出一个带有“无效属性ID”的SyntaxError 。 “计算属性名称”中允许使用模板string。 例如,这个编译在支持语法的所有浏览器中都完美无缺: var foo = { [`bar` + 1]: `baz` }; 并创build对象{"bar1": "baz"} 。 为什么模板string不允许作为文字对象键? 这是出于性能的原因? 模板string必须编译,可能在运行时(纠正我,如果我错了),这意味着每次遇到这个对象时,解释器将不得不计算对象名称。 考虑像“煮熟的”模板string这样的东西,看起来它可能会变慢,尽pipe从ES5开始就有了getter和setter。 Firefox并没有提到这是一个错误,这就是为什么我发现它意外。 在将来的某个时候会允许语法吗?

我如何使用简单的Express应用程序使用Node.js群集?

– 我构build了一个简单的应用程序,它从一个Redis数据库中提取数据(50个项目),并在本地主机上抛出。 我做了一个ApacheBench(c = 100,n = 50000),我在双核T2080 @ 1.73GHz(我的6哟笔记本电脑)上获得了150次请求/秒,但是使用过程非常令人失望,图所示: 只有一个核心使用,这是按照devise在节点,但我想我几乎可以加倍我的请求/秒〜300,甚至更多,如果我可以使用Node.js群集。 我摆弄了很多,但我一直无法弄清楚如何把这里给出的代码与我的应用程序一起使用,如下所示: var express = require( 'express' ), app = express.createServer(), redis = require( 'redis' ).createClient(); app.configure( function() { app.set( 'view options', { layout: false } ); app.set( 'view engine', 'jade' ); app.set( 'views', __dirname + '/views' ); app.use( express.bodyParser() ); } ); function log( what […]

规定Node.js

我最近已经开始使用Node.js,并且遇到了一个需要关于完成任务的规定性node.js方法的小指导。 在这个特殊的情况下,我需要创build一堆目录,当所有的目录都创build完毕后,我需要执行一些最终的操作。 创build目录的顺序并不重要,我只需要在最后一个操作之后执行最后的操作。 最简单的方法是回到旧的同步习惯。 也就是说,只需为每个目录调用fs.mkdirSync并在最后执行操作即可。 例如: fs.mkdirSync('a', 0755); fs.mkdirSync('a/b', 0755); fs.mkdirSync('a/b/c', 0755); performFinalOperation(); 虽然这会起作用,但它并不像Node.js这样做的方式。 很明显,程序会在等待操作系统创build目录并返回时阻塞。 在远程安装文件系统的重负载系统上,每个mkdirSync调用可能需要很长时间。 很显然,这不是最好的方法。 Node.js的一个主要卖点是它是asynchronous的。 所以fs.mkdir的调用可以通过callback来链接: fs.mkdir('a', 0755, function(e) { if (!e) { fs.mkdir('a/b', 0755, function(e) { if (!e) { fs.mkdir('a/b/c', 0755, function(e) { if (!e) { performFinalOperation(); } }); } }); } }); 再次,我确信这种方法是有效的,但是它导致了非常深的嵌套和代码重复。 它具有在创build目录时不阻塞的好处,但成本是多less? 另一种方法是非常喜欢避免代码重复和嵌套: (function (directories) { if (directories.length […]