一.下载安装nvm (node版本管理器),方便以后版本切换
nvm list -> 查看node版本(版本最好在8.0以上,不然在vsCode断点调试进不去,跟node版本有关系)
nvm install 6.10.8 -> 安装node
nvm use 6.4.2 ->使用的node版本号
二.开始第一个hello world程序
node filename.js 开启node服务
ctrl + c 退出操作
/* 服务模块: 打开服务: 流程: 1.引入模块,通过变量来接收 2.通过http.createServer创建服务,注意后面跟上一个匿名函数 req: request 请求 res: response 响应 两个接口 3.通过listen监听端口号和访问地址 4.通过res.writeHead设置网页状态码和文档内容类型 5.res.end */ var http = require("http");//变量http得到被引入模块"http"的所有接口 //创建服务器,参数是一个回调函数, http.createServer(function(req,res){ /* 设置响应HTTP头部信息, 第一个参数:传入网页状态码, 200表示请求正常 第二个参数:设置文档内容类型,text/html 表示html文档类型,charset=UTF-8表示文档编码类型 小知识:国内编码:GBK(国标k) gb2312 ... */ res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"}); res.end("hello world!");//如果没有res.end会存在"挂起"状态,也就是浏览器Tab选项卡的圈圈会一直转 console.log("hello console~");//会在控制台打印 }).listen(3000,"127.0.0.1");//端口号,要访问的名称(IP)
三. req.url 输出请求的头部路由信息
var http = require("http");//变量http得到被引入模块"http"的所有接口 //创建服务器,参数是一个回调函数, http.createServer(function(req,res){ res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"}); console.log("服务器接收到了请求地址为:" + req.url );//会在控制台打印 /** * 打印结果为: * 服务器接收到了请求地址为:/ ( 浏览器访问地址为 127.0.0.1:3000 时) * 服务器接收到了请求地址为:/favicon.ico (小图标) * 服务器接收到了请求地址为:/think ( 浏览器访问地址为 127.0.0.1:3000/think 时) * 服务器接收到了请求地址为:/favicon.ico (小图标) */ res.end("hello world!");//如果没有res.end会存在"挂起"状态,也就是浏览器Tab选项卡的圈圈会一直转 }).listen(3000,"127.0.0.1");//端口号,要访问的名称(IP)
四.通过设置 req.url,访问路由
var http = require("http");//变量http得到被引入模块"http"的所有接口 //创建服务器,参数是一个回调函数, http.createServer(function(req,res){ if( req.url == "/home" ){ res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"}); console.log("服务器接收到了请求地址为:" + req.url );//会在控制台打印 /** * 打印结果为: * 服务器接收到了请求地址为:/ ( 浏览器访问地址为 127.0.0.1:3000 时) * 服务器接收到了请求地址为:/favicon.ico (小图标) * 服务器接收到了请求地址为:/think ( 浏览器访问地址为 127.0.0.1:3000/think 时) * 服务器接收到了请求地址为:/favicon.ico (小图标) */ res.end("首页");//如果没有res.end会存在"挂起"状态,也就是浏览器Tab选项卡的圈圈会一直转 }else if(req.url == "/nav"){ res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"}); console.log("服务器接收到了请求地址为:" + req.url ); res.end("导航"); }else if(req.url == "/detail"){ res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"}); console.log("服务器接收到了请求地址为:" + req.url ); res.end("详情"); }else{ //页面不存在改变状态码为404 res.writeHead(404,{"Content-type":"text/html;charset=UTF-8"}); console.log("服务器接收到了请求地址为:" + req.url );//会在控制台打印 res.end("页面不存在");//如果没有res.end会存在"挂起"状态,也就是浏览器Tab选项卡的圈圈会一直转 } }).listen(3000,"127.0.0.1");//端口号,要访问的名称(IP)
五.新建html页面,fs.readFile来读取文件显示
hello.js
/** * 特别注意:写目录时一定记得在前面加上./(如果从当前开始的话) * 因为我们不知道代码将来会在什么环境下运行(常见的环境:windows、linux) */ var http = require("http");//变量http得到被引入模块"http"的所有接口 var fs = require("fs");//fs文件系统模块 //fs.readFile 异步读取一个文件的全部内容 //创建服务器,参数是一个回调函数, http.createServer(function(req,res){ if( req.url == "/home" ){ /** * 读取文件:文件路径及名称,回调函数 * 回调函数: err:错误信息 , data:读取的数据/内存 * */ fs.readFile("./home.html",function(err,data){//data读取到的文件内容 res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"}); console.log("服务器接收到了请求地址为:" + req.url );//会在控制台打印 res.end(data); }); }else if(req.url == "/css.css"){ fs.readFile("./resource/css.css",function(err,data){//data读取到的文件内容 res.writeHead(200,{"Content-type":"text/css"}); console.log("服务器接收到了请求地址为:" + req.url );//会在控制台打印 res.end(data); }); }else{ //页面不存在改变状态码为404 res.writeHead(404,{"Content-type":"text/html;charset=UTF-8"}); console.log("服务器接收到了请求地址为:" + req.url );//会在控制台打印 res.end("页面不存在");//如果没有res.end会存在"挂起"状态,也就是浏览器Tab选项卡的圈圈会一直转 } }).listen(3002,"127.0.0.1");//端口号,要访问的名称(IP)
home.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="css.css"> </head> <body> Test页面~~ </body> </html>
dos 命令窗口 运行 node hello.js
在浏览器输入127.0.0.1:3000/html就可以看见页面了