下面将带领大家一步步学习nodejs,知道怎么使用nodejs搭建服务器,响应get/post请求,连接数据库等。

搭建服务器页面输出hello world

 var  http  =  require('http');  
http.createServer(function  (request,  response)  {  
    response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  
    if(request.url!=="/favicon.ico"){  //清除第2此访问 node.js bug,第二次访问/favicon.ico
        console.log('访问');  
        response.write('hello,world 世界');  
        response.end();//不写则没有http协议尾
    }  
}).listen(8000);  
console.log('Server  running  at  http://127.0.0.1:8000/');  
  
/*  
启动服务  
cmd下执行:  
node  1_helloworld.js  
浏览器访问:http://localhost:8000  
*/  

基本语句说明:

1)require 语句,模块通过它加载

对于该语句的解析可参见我的文章《require() 源码解读》(http://www.cnblogs.com/fangsmile/p/6244615.html)

2)http.createServer(function(req, res){  }).listen(8000);

方法说明:

该函数用来创建一个HTTP服务器,并将 requestListener 作为 request 事件的监听函数。最后调用listen函数,监听端口。

接收参数:

requestListener   请求处理函数,自动添加到 request 事件,函数传递两个参数:

req  请求对象,想知道req有哪些属性,可以查看 “http.request 属性整合”。

res   响应对象 ,收到请求后要做出的响应。想知道res有哪些属性,可以查看 “http.response属性整合”。

3)response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  

方法说明:

向请求的客户端发送响应头。

接收参数:

statusCode   HTTP状态码,如200(请求成功),404(未找到)等。

headers     类似关联数组的对象,表示响应头的每个属性

该函数在一个请求内最多只能调用一次,如果不调用,则会自动生成一个响应头。

4)response.end()

方法说明:

结束响应,告诉客户端所有消息已经发送。当所有要返回的内容发送完毕时,该函数必须被调用一次。

如何不调用该函数,客户端将永远处于等待状态。

将上面的代码复制保存到1_helloworld.js,cmd下执行语句:node  1_helloworld.js 。再去浏览器访问:http://localhost:8000

下节课介绍函数调用:nodejs进阶2--函数模块调用

nodejs进阶(1)—输出hello world的更多相关文章

  1. nodejs进阶(4)—读取图片到页面

    我们先实现从指定路径读取图片然后输出到页面的功能. 先准备一张图片imgs/dog.jpg. file.js里面继续添加readImg方法,在这里注意读写的时候都需要声明'binary'.(file. ...

  2. nodejs进阶(3)—路由处理

    1. url.parse(url)解析 该方法将一个URL字符串转换成对象并返回. url.parse(urlStr, [parseQueryString], [slashesDenoteHost]) ...

  3. nodejs进阶(5)—接收请求参数

    1. get请求参数接收 我们简单举一个需要接收参数的例子 如果有个查找功能,查找关键词需要从url里接收,http://localhost:8000/search?keyword=地球.通过前面的进 ...

  4. nodejs进阶(7)—async异步流程控制

    Async介绍 Async是一个流程控制工具包,提供了直接而强大的异步功能.基于Javascript为Node.js设计,同时也可以直接在浏览器中使用. Async提供了大约20个函数,包括常用的 m ...

  5. NodeJS学习笔记 进阶 (12)Nodejs进阶:crypto模块之理论篇

    个人总结:读完这篇文章需要30分钟,这篇文章讲解了使用Node处理加密算法的基础. 摘选自网络 Nodejs进阶:crypto模块之理论篇 一. 文章概述 互联网时代,网络上的数据量每天都在以惊人的速 ...

  6. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  7. NodeJS学习笔记 进阶 (13)Nodejs进阶:5分钟入门非对称加密用法

    个人总结:读完这篇文章需要5分钟,这篇文章讲解了Node.js非对称加密算法的实现. 摘录自网络 地址: https://github.com/chyingp/nodejs-learning-guid ...

  8. nodejs进阶(1)——npm使用技巧和最佳实践

    nodejs进阶教程,小白绕道!!! npm使用技巧和最佳实践 前提:请确保安装了node.js npm的最佳实践 npm install是最常见的npm cli命令,但是它还有更多能力!接下来你会了 ...

  9. Nodejs进阶:如何玩转子进程(child_process)

    本文摘录自个人总结<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 在node中,child_process这个模 ...

随机推荐

  1. '-[__NSCFString stringFromMD5]: unrecognized selector sent to instance 0x14d89a50'

    类型:ios 问题描述: 导入百度地图 然后在模拟器运行可以,真机测试不行: 报错: '-[__NSCFString stringFromMD5]: unrecognized selector sen ...

  2. [LeetCode] Longest Valid Parentheses 动态规划

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...

  3. 启动项目报错Error: listen EADDRINUSE

    我在使用elasticsearch的kibana插件时候,有一次启动,遇到这个错误: Error: listen EADDRINUSE 它的意思是,端口5601被其他进程占用. 故而,需要kill掉那 ...

  4. android 通过AlarmManager实现守护进程

    场景:在app崩溃或手动退出或静默安装后能够自动重启应用activity 前提:得到系统签名 platform.pk8.platform.x509.pem及signapk.jar 三个文件缺一不可(系 ...

  5. OSI模型和TCP/IP协议族(一)

    1990年以前,再数据通信和组网文献中占主导地位的分层模型是开放系统互连(Open System Interconnnection,OSI)模型.当时所有人都认为OSI模型将是数据通信的最终标准,然而 ...

  6. JOISC2019 游记

    JOISC2019 游记 Day 1: 試験 (Examination) 题目大意: 有\(n(n\le10^5)\)个人,每个人有两种属性\(s_i,t_i\).\(q(q\le10^5)\)次询问 ...

  7. git 强制覆盖分支

    假设要用develop覆盖master分支,如下操作 git checkout master git reset --hard develop //先将本地的master分支重置成develop gi ...

  8. Redis学习笔记之多机数据库

    1.复制 完整重同步,从服务器完全复制主服务器的数据,主要通过RDB文件和单条命令传输(套接字连接). 部分重同步,主服务器进行命令传播的时候,不仅会把写命令发送给从服务器,而且还会把写命令放入复制积 ...

  9. android aysncTask面试解析

  10. 对json数据key进行替换

    原文:https://blog.csdn.net/qq_39750658/article/details/83411897 import java.util.HashMap; import java. ...