Tag: javascript

这个node.js中的'on'方法是JavaScript方法还是节点方法?

我在Google上找不到这个答案,因为“on”是一个很常见的词。 在这个node.js例子中: conn.on('close', function() { var pos = connections.indexOf(conn); if (pos >= 0) { connections.splice(pos, 1); } }); 有一个.on方法(?)。 它能做什么? 这是一个JavaScript方法? 或者它只是你在节点中find的东西? 我有点困惑,因为我觉得我在jQuery上看到类似于.on东西。 它是类似于jQuery .live事件处理程序吗? 任何人都可以向我解释这个?

expressionjsforms的数据

有人可以告诉我build议(最新)的方式来获得张贴表单数据的快递。 所以很多教程/post等讨论bodyParser,但不再与Express捆绑在一起,其他博客等推荐使用urlencoded直接,但现在这是不可用。 试图find关于这些框架或技术的准确信息正在进入我的脑海。 顺便说一句,我感兴趣的是非常简单和小型的数据

为什么Node.JS中的V8比我的本地C ++插件更快?

为什么我的C ++插件中的Google V8 JavaScript引擎的工作速度比Node.JS慢得多? 我试着编写一些简单的代码来生成JavaScript中的素数,并通过C ++插件在V8中直接在Node.JS中运行它。 我感到非常震惊,因为它们都应该使用相同的JavaScript引擎,并且都执行相同的代码(时间以毫秒为单位)。 V8 in Node.JS: 495517 V8 in Node.JS C++ Addon: 623598 这里是运行相同的JavaScript代码的JavaScript模块和C ++插件的源代码(我认为问题不在互操作中,因为时间的测量直接在JS中工作): index.js : var jsInNodeJsPrimeGeneratorBenchmark = require("./javascript.js"); var jsInNativePrimeGeneratorBenchmark = require("./native"); console.log("V8 in Node.JS: ", jsInNodeJsPrimeGeneratorBenchmark.primeGeneratorBenchmark()); console.log("V8 in Node.JS C++ Addon: ", jsInNativePrimeGeneratorBenchmark.primeGeneratorBenchmark()); javascript.js : function primeGeneratorBenchmark() { var result, primeNumberCounter, i, j, isPrime, start, end; i […]

eslint:errorparsing错误:关键字'const'是保留的

从eslint获取这个错误: 错误parsing错误:关键字'const'是保留的 从这个代码: const express = require('express'); const app = express(); const _ = require('underscore'); 我尝试删除node_modules并树脂安装所有节点包,如下所示: 使用React和Webpack设置Airbnb ESLint 但无济于事。

在node.js中产生并杀死一个进程

我可能会为此而低估,但我不明白我要去哪里错了。 我试图在JavaScript中产生一个进程,并在一段时间后杀死它(testing)。 最后,这个过程将是一个无限循环,我需要在指定的时间重新启动不同的参数,所以我认为产生这个过程并杀死它是最好的方法。 我的testing代码是: var spawn=require('child_process').spawn , child=null; child=spawn('omxplayer', ['test.mp4'], function(){console.log('end');}, {timeout:6000}); console.log('Timeout'); setTimeout(function(){ console.log('kill'); child.kill(); }, 1200); child.stdout.on('data', function(data){ console.log('stdout:'+data); }); child.stderr.on('data', function(data){ console.log('stderr:'+data); }); child.stdin.on('data', function(data){ console.log('stdin:'+data); }); 结果是: #~$ node test.js Timeout kill 但我仍然需要发送CTRL + C来结束程序 我错过了什么? 编辑:在Raspbian,节点0.10.17,omxplayer是一个二进制(video播放器)。 试过:添加chmod + x的应用程序。 以root身份启动。 暂停的孩subprocess的标准input。 在kill命令中使用所有与终止相关的信号。 EDIT2: 在应用程序运行时启动了一个ps命令: 2145 bash 2174 node 2175 omxplayer […]

使用承诺 – 在失败处理程序中logging堆栈跟踪

我对nodejs比较陌生,所以我会更详细地解释一下我正在做的事情。 我有一个networking服务器。 如果请求失败,我想logging该exception的堆栈跟踪,但是传递错误页面而不会使服务器崩溃。 例如,处理请求的函数: var Q = require('q'); var requestHandler = function () { // Here I get the data etc. that was requested. As this is not important, just a dummy here Q.resolve() // Now I answer the request .then(function (data) { // Dummy Code representing the sending of a response console.log('sending response …'); […]

在Node.js中侦听EADDRNOTAVAIL错误

我在我的服务器上安装了Nginx和Node.js。 当我尝试运行我的node.js文件,我得到一个错误: Node.js的:201 扔e; // process.nextTick错误,或第一次打勾时发生“错误”事件 ^ 错误:听EADDRNOTAVAIL 在errnoException(net.js:614:11) 在Array.0(net.js:689:28) 在EventEmitter._tickCallback(node.js:192:40) 我该如何解决这个问题? 谢谢!

在nodemon旁边运行node-inspector?

我目前正在使用nodemon和nodemon 。 然后我开始认为有时使用节点检查器可能会很好,所以开始使用节点检查器 但是,是否可以同时运行两个? 通常运行nodemon我会使用: nodemon server.js //and similarly node-debug server.js 我也试过了: nodemon –debug http.js 但可悲的是,这也没有奏效。 但是在一起!

mongoose – 创build文件,如果不存在,否则,更新 – 返回文件在任何情况下

我正在寻找一种方法来重构我的代码的一部分,以缩短和简化,但我不知道mongoose很好,我不知道如何继续。 我试图检查一个文档的存在集合,如果它不存在,创build它。 如果确实存在,我需要更新它。 无论哪种情况,我都需要访问文档的内容。 我迄今为止设法做的是查询特定文档的集合,如果找不到,则创build一个新文档。 如果发现,我更新它(目前使用date作为这个虚拟数据)。 从那里我可以访问从我最初的find操作find的文件或新保存的文件,这是可行的,但必须有更好的方式来完成我所追求的。 这是我的工作代码,无需分心。 var query = Model.find({ /* query */ }).lean().limit(1); // Find the document query.exec(function(error, result) { if (error) { throw error; } // If the document doesn't exist if (!result.length) { // Create a new one var model = new Model(); //use the defaults in the schema model.save(function(error) […]

用gulp运行一个命令来启动Node.js服务器

所以我使用的是gulp-exec( https://www.npmjs.com/package/gulp-exec ),它在阅读了一些文档后提到,如果我想运行一个命令,我不应该使用插件,使用我已经尝试使用下面的代码。 var exec = require('child_process').exec; gulp.task('server', function (cb) { exec('start server', function (err, stdout, stderr) { .pipe(stdin(['node lib/app.js', 'mongod –dbpath ./data'])) console.log(stdout); console.log(stderr); cb(err); }); }) 我试图让我的Node.js服务器和MongoDB启动。 这就是我想要完成的。 在我的terminal窗口,它抱怨我的 .pipe 不过,我是新来的吞咽,我认为这是你如何通过命令/任务。 任何帮助表示赞赏,谢谢。