一.下载安装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就可以看见页面了

 

node学习笔记_01 环境搭建的更多相关文章

  1. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  2. 我的Java学习笔记 -开发环境搭建

    开始学习Java~ 一.Java简介 Java编程语言是一种简单.面向对象.分布式.解释型.健壮安全.与系统无关.可移植.高性能.多线程和动态的语言. Java分为三个体系: JavaSE(J2SE) ...

  3. Django学习笔记 开发环境搭建

    为什么使用django?1.支持快速开发:用python开发:数据库ORM系统,并不需要我们手动地构造SQL语句,而是用python的对象访问数据库,能够提升开发效率.2.大量内置应用:后台管理系统a ...

  4. cocos2d-x lua 学习笔记(1) -- 环境搭建

    Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后, ...

  5. 前端框架vue学习笔记:环境搭建

    兼容性 不兼容IE8以下 Vue Devtools 能够更好的对界面进行审查和调试 环境搭建 1.nodejs(新版本的集成了npm)[npm是node包管理 node package manager ...

  6. SpringData JPA的学习笔记之环境搭建

    一.环境搭建 1.加入jar包   spring jar+jpa jar +springData jar >>SpringData jar包     2.配置applicationCont ...

  7. Mybatis学习笔记之---环境搭建与入门

    Mybatis环境搭建与入门 (一)环境搭建 (1)第一步:创建maven工程并导入jar包 <dependencies> <dependency> <groupId&g ...

  8. Web安全测试学习笔记 - vulhub环境搭建

    Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:htt ...

  9. 【Django学习笔记】-环境搭建

    对于初学django新手,根据以下步骤可以快速进行Django环境搭建 虚拟环境创建 使用virtualenv创建并启用虚拟机环境 ,关于virtualenv可参考https://www.yuque. ...

随机推荐

  1. HTML 常用小技巧 【标题图标】【锚点】【插入音乐,视频】【滚动效果】【嵌入网页】

    一 在原页面嵌入其他页面 使用iframe框架 < iframe >------ < / iframe > <iframe  src="要放在框架里面的网址或文 ...

  2. SSH:Hibernate框架(七种关联关系映射及配置详解)

    概念 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用. 分类 关联关系分为上述七种,但是由于相互之间有各种关系, ...

  3. bootstrap-datepicker 开始时间-结束时间 thinkphp

    <!DOCTYPE html> <head> <title>开始-结束时间测试</title> </head> <body> & ...

  4. linux7 安装GitLab

    1.安装Linux虚拟机-- 安装后配置a.停止防火墙# systemctl stop firewalld.service# systemctl disable firewalld.service# ...

  5. HDU3062(2-SAT)

    Party Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. Ubuntu14.16.18更新源

    一.源概述 源,可以认为是软件库,使用apt-get install安装的时候,会在源保存的库中进行搜索,因此源(默认源在欧洲)会影响下载速度和资源数量 二.更新源 1.步骤 编辑/etc/apt/s ...

  7. oop(Object Oriented Programming)

    嗯,昨天忙了一天没来及发,过年啊,打扫啊,什么搽窗户啊,拖地啊,整理柜子啊,什么乱七八糟的都有,就是一个字,忙. 好了,废话也不多说,把自己学到的放上来吧.嗯,说什么好呢,就说原型链啊 原型对象 每个 ...

  8. Oracle 修改SYS、system用户密码

    Oracle 修改SYS.system用户密码 by:授客 QQ:1033553122 概念 SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用于数据库管理的用户.在数据库安装完之后,应 ...

  9. [JAVA] Android用到的一些文件操作

    // 获得某个文件夹folderPath下面某种文件后缀fileType的所有文件名 public static List<String> getFileNamesInFolder(Str ...

  10. [Android] 实现简单的相机程序

    好久没写了,有些东西做过都快忘了,赶紧记一下. 现在来实现一个简单的相机程序. 原文地址http://www.cnblogs.com/rossoneri/p/4246134.html 当然需要的话可以 ...