一、简单的nodeJs写的 http 服务器

1.先Hello world,创建最简单的 Node 服务器(server.js)

var http = require("http");

http.createServer(function(request, reponse) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8888);

执行:

node server.js

1. var http = require("http")  表示请求NodeJs自带的 http 模块,并赋值给 http 变量

2.  http.createServer()  会返回一个对象,这个对象有一个 listen 方法,这个方法有一个Number类型的参数,该参数指定了HTTP服务器监听的端口号

3. 所以本段代码 会开启一个监听 8888 端口的服务器,我们可以通过打开浏览器,访问 http://localhost:8888/  来连接该服务器,我们会看到网页上写着 “Hello World”

二、事件驱动和回调:

上面的代码也可以如此编写:(即onRequest函数作为参数传递给 http.createServer() )

var http = require("http");
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");

onRequest函数会在 http.createServer() 方法执行时的特定时间点去调用(即某个事件发生时,才会执行——事件驱动的回调

回调函数的目的: 当我们使用 http.createServer 方法的时候,我们当然不只是想要一个侦听某个端口的服务器,我们还想要它在服务器收到一个HTTP请求的时候做点什么

执行上面的代码(node server.js )终端会输出上图的  Server has started.  文本;

再打开 http://localhost:8888/  路径,终端会输出上图的 Request received. 文本,输出两次(因为还会访问一次http://localhost:8888/favicon.ico);

这就是事件驱动,访问时(事件发生)才会调用。

三、服务器相关:

1. onRequest函数被调用时,request 和 response 作为参数会被传入;

2. request 和 response 是对象,可以使用它们的方法来 处理HTTP请求的细节,也可以 响应请求 (即给发请求的浏览器返回数据);

3. 上面的代码:

收到请求时,

使用 response.writeHead() 函数发送一个HTTP状态(200)和HTTP头的内容类型(content-type),

使用 response.write() 函数在HTTP相应主体中发送文本“Hello World"。

调用 response.end() 完成响应。

暂时未使用 request ,request中放的是请求时的携带的参数

四、node中模块的导入导出

//导入http模块,并使用
var http = require("http");
...
http.createServer(...).listen(8888);
//此处使用http变量来接受赋值,也可以使用其他变量 //导出自己的模块start,我们把它写在server.js中
function start() {
...
} exports.start = start; //导入自己的模块start
var server = require("./server"); server.start();

nodeJs编写的简单服务器的更多相关文章

  1. nodejs学习之简单服务器的编写

    不废话了!直接上代码: var http = require('http'); //导入模块http http.createServer(function(request,response){ res ...

  2. 用nodejs搭建一个简单的服务器

    使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安 ...

  3. 利用 nodeJS 搭建一个简单的Web服务器(转)

    下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...

  4. Python网络编程——编写一个简单的回显客户端/服务器应用

    今天将python中socket模块的基本API学习完后,照着书上的实例编写一个套接字服务器和客户端.采用python3.5版本,在注释中会标明python2和python3的不同之处. 1.代码 ( ...

  5. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

  6. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  7. Node安装及搭建简单服务器

    注:本文安装系统为mac,windows及其他系统下载对应安装包 ,mac下载后的安装包为apk文件,windows为msi文件. 安装 1.在网上下载node安装包,官方网站2.双击下载文件,按步骤 ...

  8. 编写一个简单的Web Server

    编写一个简单的Web Server其实是轻而易举的.如果我们只是想托管一些HTML页面,我们可以这么实现: 在VS2013中创建一个C# 控制台程序 编写一个字符串扩展方法类,主要用于在URL中截取文 ...

  9. 用 Go 编写一个简单的 WebSocket 推送服务

    用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhong/wserver 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息 ...

随机推荐

  1. Spring和MyBatis整合(注解版)

    1.导入所需要的依赖 <!--MyBatis和Spring的整合包 由MyBatis提供--> <dependency> <groupId>org.mybatis& ...

  2. [Web] How to Test React and MobX with Jest

    转载自: https://semaphoreci.com/community/tutorials/how-to-test-react-and-mobx-with-jest?utm_content=bu ...

  3. python PIL 图像处理

    python PIL 图像处理 This blog is from: https://www.jianshu.com/p/e8d058767dfa Image读出来的是PIL的类型,而skimage. ...

  4. android : 解决android无法使用sun.misc.BASE64Encoder sun.misc.BASE64Decoder 的问题, 无需添加rt.jar

    一共包含: BASE64Decoder.java BASE64Encoder.java CEFormatException.java CEStreamExhausted.java CharacterD ...

  5. apache Request-URI Too Large 处理办法

    在Apache的httpd.conf配置文件中(直接加就可以) LimitRequestLine 40940 LimitRequestFieldSize 40940

  6. MQTT研究之EMQ:【eclipse的paho之java客户端使用注意事项】

    这里,简单记录一下自己在最近项目中遇到的paho的心得,这里也涵盖EMQX的问题. 1. cleanSession 这个标识,是确保client和server之间是否持久化状态的一个标志,不管是cli ...

  7. [转].gitignore文件不起作用的解决方案

    .gitignore文件不起作用的解决方案 觉得有用的话,欢迎一起讨论相互学习~Follow Me 转载地址 https://www.cnblogs.com/liugp/p/10399282.html ...

  8. iOS开发需要哪些设备

    ios开发硬件配置环境 工具:使用到 Xcode 和 iOS SDK(Apple 提供的开发工具). 硬件配置: 首先有一台Mac电脑,然后有一个iDevice——iPhone.iPad.iPod T ...

  9. Html JavaScript网页制作与开发完全学习手册

    Html JavaScript网页制作与开发完全学习手册 篇 HTML技术章 HTML入门 1.1 什么是HTML 1.1.1 HTML的特点 1.1.2 HTML的历史 1.2 HTML文件的基本结 ...

  10. Python - Django - form 组件动态从数据库取 choices 数据

    app01/models.py: from django.db import models class UserInfo(models.Model): username = models.CharFi ...