应用不同模块分析

我们来分解一下这个应用,为了实现一个应用,我们需要实现哪些部分呢?

  • 我们需要提供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(, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(); //打开浏览器访问 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 服务器在特定端口监听。

最新文章

  1. 冰冻三尺非一日之寒--web框架Django(三)
  2. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.0 版新增查询引擎管理
  3. HDU 4289:Control(最小割)
  4. java synchronized静态同步方法与非静态同步方法,同步语句块
  5. lintcode:三数之和
  6. CC2640-之功耗
  7. Linux----函数中变量的作用域、local关键字。
  8. Python函数式编程:内置函数map()使用说明
  9. zencart 掉炸天的tpl_main_page.php
  10. 关于easyUI的datebox加失去焦点事件即click、blur等
  11. Android手机客户端测试点(全)
  12. ../../../../.. 太low了
  13. Redtiger SQL注入练习(二)
  14. CSAPP深入理解计算机系统(第二版)第三章家庭作业答案
  15. fasterxml.jackson 将对象转换为json报错处理
  16. 使用 wondershaper 在 Linux 中限制网络带宽使用
  17. Jmeter分布式压力测试
  18. maven打包 springBoot 工程时,默认识别resources目录,习惯使用 resource 目录的需要手动指定静态资源目录
  19. python基础(二)条件判断、循环、格式化输出
  20. Intellij IDEA 添加项目依赖

热门文章

  1. Codeforces Round 564 题解
  2. shell编程题(五)
  3. parameter与argument,property与attribute
  4. Windows安装gmpy2
  5. Linux上使用yum安装openjdk
  6. 第10课 面向对象的增强(default/delete、override/final)
  7. spring JDBC的应用
  8. Mysql变量、存储过程、函数、流程控制
  9. 前端与算法 leetcode 344. 反转字符串
  10. 在电脑上部署网站lls 浏览器上访问