Nodejs入门级
应用不同模块分析
我们来分解一下这个应用,为了实现一个应用,我们需要实现哪些部分呢?
- 我们需要提供Web页面,因此需要一个HTTP服务器
- 对于不同的请求,根据请求的URL,我们的服务器需要给予不同的响应,因此我们需要一个路由,用于把请求对应到请求处理程序(request handler)
- 当请求被服务器接收并通过路由传递之后,需要可以对其进行处理,因此我们需要最终的请求处理程序
- 路由还应该能处理POST数据,并且把数据封装成更友好的格式传递给请求处理入程序,因此需要请求数据处理功能
- 我们不仅仅要处理URL对应的请求,还要把内容显示出来,这意味着我们需要一些视图逻辑供请求处理程序使用,以便将内容发送给用户的浏览器
- 最后,用户需要上传图片,所以我们需要上传处理功能来处理这方面的细节
注:使用Node.js时,我们不仅仅在实现一个应用,同时还实现了整个HTTP服务器
构建应用的模块
把不同功能的代码放入不同的模块中,保持代码分离,保持代码的可读性。必须有一个干净的主文件 index.js,和一个保存着HTTP服务器代码的模块 server.js
在你的项目的根目录下创建一个叫server.js的文件,并写入以下代码:
var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); }).listen(8888); //打开浏览器访问 http://localhost:8888/
或者:listen(1337, "127.0.0.1"); //打开浏览器访问 http://127.0.0.1:1337/
命令行:node server.js
打开浏览器访问地址,会看到一个写着“Hello World”的网页。
代码逻辑:
1. 全局方法 require() 是用来导入模块的,一般直接把 require() 方法的返回值赋值给一个变量,在 JavaScript 代码中直接使用此变量即可 。require("http") 就是加载系统预置的 http 模块。
2. http.createServer 是模块的方法,目的就是创建并返回一个新的web server对象,并且给服务绑定一个回调,用以处理请求。
3. 通过 http.listen() 方法就可以让该 HTTP 服务器在特定端口监听。