位置: 编程技术 - 正文
推荐整理分享轻松创建nodejs服务器(8):非阻塞是如何实现的(node.js怎么搭建服务器),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:创建nodejs项目的步骤,node.js创建服务,node.js怎么创建js文件,如何创建node项目,如何使用nodejs创建web服务器,创建nodejs项目的步骤,创建nodejs项目的步骤,如何使用nodejs创建web服务器,内容如对您有帮助,希望把文章链接给更多的朋友!
这节我们来了解一下nodejs实现非阻塞操作的方法。
我们先来修改一下 start的处理程序:
这段代码,创建了一个新的变量content(初始值为“empty”),执行“ls -lah”命令,将结果赋值给content,最后将content返回。
我们引入了一个新的Node.js模块,child_process,之所以用它,是为了实现一个既简单又实用的非阻塞操作:exec()。
那么exec()做了什么呢?
它从Node.js来执行一个shell命令。在上面的例子里,我们用它来获取当前目录下所有的文件(“ls -lah”),然后,当/startURL请求的时候将文件信息输出到浏览器中。
我们启动服务器,访问“ empty。
exec()发挥作用了,有了它,我们可以执行非常耗时的shell操作而无需迫使我们的应用停下来等待该操作。
虽然如此,但是页面输出的内容似乎不是我们想要的结果。
我们来分析一下原因:
我们的代码是同步执行的,这就意味着在调用exec()之后,Node.js会立即执行 return content ;
在这个时候,content仍然是“empty”,因为传递给exec()的回调函数还未执行到——因为exec()的操作是异步的。
下一节我们将介绍如何解决这个问题。
轻松创建nodejs服务器(7):阻塞操作的实现 我们来看一下什么是阻塞操作;我模拟一个sleep()方法来使hellostar延迟秒打印。requestHandlers.jsfunctionstart(){console.log("Requesthandler'start'wascalled.");functionsleep(
轻松创建nodejs服务器():处理POST请求 目前为止,我们做的服务器没有实际的用处,接下来我们开始实现一些实际有用的功能。我们要做的是:用户选择一个文件,上传该文件,然后在浏览
轻松创建nodejs服务器():处理上传图片 本节我们将实现,用户上传图片,并将该图片在浏览器中显示出来。这里我们要用到的外部模块是FelixGeisendrfer开发的node-formidable模块。它对解析上传的
标签: node.js怎么搭建服务器
本文链接地址:https://www.jiuchutong.com/biancheng/374202.html 转载请保留说明!友情链接: 武汉网站建设