Node.js:检查事件循环中剩下的事情是否阻止脚本自然退出

如果主事件循环中还有callback,Node.js脚本将不会退出。 虽然可以通过调用process.exit()强制终止脚本,或者抛出exception,但build议通过始终进行适当的清理,使脚本“自然”终止。 然而,这有时可能是困难的,因为代码中的错误可能会妨碍正确的清理,例如,我可能会忘记在不再需要时删除IntervalObject等等,这最终会阻止程序终止。 因此,有没有办法debugging一个非终止脚本来找出事件循环中剩下的内容? 换句话说,Node.js中是否有方法来debugging什么是阻止程序退出?

TypeScript:如何定义安装npm包的自定义types?

我喜欢在TypeScript中使用rx-node import RxNode from 'rx-node'; 我使用npm安装了rx-node $ npm install rx-node –save 我search了types定义,但没有任何结果 $ typings search rx-node No results found for search 如何为已安装的npm模块rx-node定义自定义types定义? 我应该在哪里存储types定义文件? 如何configurationTypeScript( tsconfig.json和typings.json )? 编辑:感谢Aleksey L.和大卫Bohunek我实现了定义一个rx-node.d.ts ,看起来像这样 declare module "rx-node" { import {Observable} from '@reactivex/rxjs'; import {ReadLine} from "readline"; function fromReadLineStream(stream: ReadLine): Observable<string> } 我安装了@reactivex / rxjs npm install –save @reactivex/rxjs 因为我有一个错误 node_modules\@reactivex\rxjs\dist\cjs\Observable.d.ts […]

使用node.js下载大文件,避免高内存消耗

我试图创build一个文件下载作为后台服务,但是当一个大文件被安排,它首先放在内存中,然后,在下载结束时,文件被写入磁盘。 考虑到我可能同时有很多文件正在被下载,我怎么才能使文件逐渐写入磁盘保留内存? 这是我使用的代码: var sys = require("sys"), http = require("http"), url = require("url"), path = require("path"), fs = require("fs"), events = require("events"); var downloadfile = "http://nodejs.org/dist/node-v0.2.6.tar.gz"; var host = url.parse(downloadfile).hostname var filename = url.parse(downloadfile).pathname.split("/").pop() var theurl = http.createClient(80, host); var requestUrl = downloadfile; sys.puts("Downloading file: " + filename); sys.puts("Before download request"); var request = theurl.request('GET', […]

检测nodejs中的内存泄漏

有没有一些工具来检测nodejs中的内存泄漏? 并告诉我有关testingnodejs应用程序的经验。

如何制作分布式node.js应用程序?

创build一个node.js应用程序非常简单。 var app = require('express')(); app.get('/',function(req,res){ res.send("Hello world!"); }); 但是,假设人们痴迷于你的Hello World! 应用程序并耗尽您的资源。 这个例子怎么能在实践中扩大呢? 我不明白,因为是的,你可以在不同的计算机上打开几个node.js实例 – 但是当有人访问http://your_site.com/时,它直接针对特定的机器,特定的端口,特定的节点进程。 又怎样?

node.js模块是否需要封装在模块模式中?

为了确保适当的隔离,我倾向于将每个在一个函数范围内写入的node.js模块进行封装: (function() { var express = require('express'); var jade = require('jade'); var moment = require('moment'); exports.someFunction = function() { // do something }; exports.otherFunction = function() { // do something else }; })(); 我已经做了一段时间了,但我有这样的感觉,node.js的模块系统实际上是为我做这个,或换句话说,上面的代码等同于下面的代码: var express = require('express'); var jade = require('jade'); var moment = require('moment'); exports.someFunction = function() { // do something }; exports.otherFunction […]

温斯顿:如何旋转日志

使用Winston处理node.js的日志logging时,如何旋转日志 也就是说,如何为应用程序运行的每一天创build一个新文件? var logger = new (winston.Logger)({ transports: [ new (winston.transports.Console)(), new (winston.transports.File)({ filename: '2012-07-09.log' }) ] }); logger.log('info', 'Test Log Message', { anything: 'This is metadata' });

使用节点检查器debugging茉莉花节点testing

有没有人有任何想法,如果这是可能的? 节点检查器的大部分示例似乎适用于debugging被调用的网页。 我想能够debugging茉莉花节点testing虽然。

是ENSOENT从fs.createReadStream不可捕捉?

我无法捕捉到fs.createReadStream()的ENOENT。 这是一个asynchronous函数,它抛出exception在不同的闭包链? $ node -v v0.10.9 $ cat a.js fs = require('fs') try { x = fs.createReadStream('foo'); } catch (e) { console.log("Caught" ); } $ node a.js events.js:72 throw er; // Unhandled 'error' event ^ Error: ENOENT, open 'foo' 我期待“被抓”被打印而不是错误的堆栈!

我如何在Windows 7上使用Nodejs?

我即将变得疯狂的寻找它,大多数的例子只显示如何在Linuxterminal上运行它,只是与服务器的通信。 可以有人请向我解释如何在Windows 7中使用NodeJs(使其运行并加载所需的任何内容)? 请问,如何将其与我的HTML5代码整合? 我真的很感激你的答案