`
- 浏览:
214049 次
- 性别:
- 来自:
大连
-
windows环境下使用nodejs开发了一个简单的网络蜘蛛,抓取网页中的图片。所以使用了http.get异步方法来下载指定的图片文件。多个图片的时候,http请求是串行发出的,下载完一个文件并生成本地文件以后再发起下一个http请求,等到最后一个图片下载完并生成本地文件以后,所有处理都结束了,按理说整个程序应该退出,但是有时候程序会停在那里,只有手动用CTL + C才能退出。试了很多种设计思路,但是问题仍然无法解决,最后强制调用了process.exit(0)才解决。
不过这个问题不是一直出现,有的网站url一直出现,有的url一切正常,不知道是什么原因。
function getpic(){
var f=fs.createWriteStream('./pic/' + j + ".jpg");
var req = http.get(srcs[j-1],function(res)
{
res.on('data', function (chunk)
{
f.write(chunk);
});
res.on('end',function()
{
f.end();
console.log(j+'.jpg OK!');
if(j < srcs.length){
++j;
getpic();
}else{
console.log('...download end...');
process.exit(0);
}
return;
});
res.on('error',function(e){
console.log(e.message);
});
});
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
`process.exitCode`属性可以设置退出码,`process.on('exit', callback)`可以在进程退出前执行回调函数。 七、模块化进程管理 在大型项目中,使用`cluster`模块可以实现进程间的负载均衡。`cluster`模块允许主进程...
在 Node.js 中使用异步 I/O 的场景很常见,例如使用文件系统模块(fs)进行文件读写操作时,Node.js 提供了多种异步文件操作方法,比如 readFile() 和 writeFile()。这些函数不会阻塞主线程,它们会立即返回,同时在...
退出钩子(AtExit hooks)是在Node.js进程退出前执行的回调函数。这可以用于清理资源或执行其他必要的操作。文档详细介绍了如何注册和使用退出钩子。 #### Assert断言模块 Assert模块是Node.js中的一个内置模块,...
在Node.js中,`process`对象代表当前运行的进程,它提供了与操作系统交互的能力,例如接收命令行参数、监听信号、控制进程退出状态等。此外,`console`模块提供了类似于浏览器JavaScript的控制台输出功能,便于调试...
- `process.on('exit', function() {})` 监听进程退出事件。 #### Request 模块 1. **HTTP 请求:** - `request` 模块简化了 HTTP 请求处理过程。 #### Async 模块 1. **异步任务控制:** - `async` 模块提供...
- **事件:'exit'**:在进程退出前触发。 - **事件:'uncaughtException'**:在未捕获的异常发生时触发。 - **信号事件**:处理来自操作系统的信号。 - **`process.stdout`**:标准输出流。 - **`process.stderr`**...
`process`对象提供了与当前进程相关的属性和方法,如获取命令行参数、退出程序等。`child_process`模块则用于创建和管理子进程,子进程间可以通过IPC(Inter-Process Communication)进行通信。 【异步编程】 ...
例如,我们常见的`process`对象就是`global`的一个属性,它提供了与Node.js进程交互的方法,如获取进程ID(`process.pid`),监听进程退出事件(`process.on('exit', callback)`)等。此外,Node.js中的`console`...
全局对象如`process`提供了对当前NodeJS进程的访问,包括环境变量、退出程序等功能。`process`对象是NodeJS中的重要组成部分,用于控制和监控进程的生命周期。 #### 八、计时器(Timers) 计时器模块提供了定时执行...
例如,`process` 对象就是一个全局对象,提供了与当前 Node.js 进程交互的方法和属性,如进程ID(`process.pid`)和退出代码(`process.exitCode`)。 **核心对象** Node.js 提供了一系列核心模块,它们是预编译好...
- `process`: 事件监听器可以在进程退出前进行清理工作。 - **Event: 'uncaughtException'**(事件:'uncaughtException'):当一个未捕获的异常发生时触发。 - `process`: 事件监听器可以处理这些异常,防止进程...
- process.on('exit', callback):监听进程退出事件。 - process.on('uncaughtException', callback):监听未捕获异常事件。 5. util工具模块 Node.js的util模块提供了很多实用的方法和属性,方便开发者进行操作...
**Global Objects** 包括Node.js环境中的一些全局变量和函数,如`process`对象,它提供了与Node.js进程交互的方法,比如获取进程ID、设置退出码、监听信号等。`global`对象则是所有全局变量的容器,尽管一般不推荐...
// 注意:在进程退出后,大部分的异步操作不会执行 setTimeout(function() { console.log("该代码不会执行"); }, 0); console.log('退出码为:', code); }); console.log("程序执行结束"); ``` 在上面的代码...
例如,process.env可以获取当前环境的环境变量,process.exit可以结束进程,并且可以传入退出状态码。 在Node.js中,error对象和错误处理机制是非常重要的,因为Node.js默认采用的是异步编程模式,错误处理不当很...
7. **退出nvm**: 使用`nvm deactivate`退出当前激活的Node.js版本。 #### 四、Node.js基本用法 1. **运行脚本**: 在命令行中使用`node script.js`运行JavaScript脚本。 2. **REPL环境**: - **进入REPL**: 直接...
开发者可以通过process对象监听进程事件,比如`'exit'`事件,以便在程序退出前执行清理工作。 4. **console对象**:console对象提供了一组方法用于向标准输出(控制台)打印信息,如`console.log()`、`console....
Node.js作为一款广泛使用的服务器端JavaScript运行环境,其设计之初就秉承了异步和事件驱动的原则,允许开发者构建轻量级的网络应用。在Node.js中,进程管理是进行性能优化和资源高效使用的重要方面。Node.js的进程...
- `process.exit(code)`: 强制进程退出,`code`参数表示退出状态码。 - `process.nextTick(callback)`: 在当前事件循环的结束时调用`callback`,常用于异步操作。 - `process.on('signal', callback)`: 注册信号...