您的位置:首页 > 理论基础 > 计算机网络

Node.js---01、初识NodeJS和Node.js的HTTP服务器搭建

2017-11-06 00:00 459 查看
一、前言
我们先从以下几个方面在大体上认识一下Node.js:

Node.js 是什么?==> 运行环境

是一个 可以运行 并加载 ES语法的 脚本运行环境

JS(ES5)、ES6、Common.js 语法 ……

Node.js 可以加载各种模块==> 实现各种功能

Node.js 安装完成后会集成 核心模块,可以让 Node.js 运行一些特定的脚本,实现一些功能

Node.js 默认加载了 ES 语法的运行环境

REPL:可交互式控制台命令行 ==> 测试

Node.js ES 运行环境 基于 Chrome V8 引擎 ++

Node.js 服务器端运行

BOM (window) 的所有方法 无法运行

DOM的所有操作 也无法运行

Node.js 除了运行ES 语法的脚本外,还可以通过 ES 语法执行其它操作,

例如 数据库访问,文件读写,缓存处理……

二、推荐开发工具:VSCode(Visual Studio Code)
三、Node.js的HTTP服务器搭建
Node.js的HTTP服务器搭建可以归纳为三步:
1、加载服务模块
const http = require("http");
2、创建服务器
const server = http.createServer(function(request,response){
......
});
3、启动服务器并监听端口
server.listen(port,callback); //port是端口号,callback是回调函数
具体代码如下
// NODE.JS 默认对所有在环境中运行的 js 代码使用严格模式

// 加载 NODE.JS 的核心扩展模块  http  获取服务器创建对象
// 1、加载服务模块
const http = require("http");//const定义常量

// 2、创建服务器
const server = http.createServer(function(request,response){
console.log("请求到达");
response.writeHead(200,{//响应头
"Content-Type":"text/html;charset=utf-8"//中文编码
});
// 对于服务器的创建
// 一个请求必有一个相应
// 一个请求一个相应 相应结束后 需要明确的相应标识
response.write("<h1>hello node啊<h1>");//响应
response.end();//结束响应
});

// 3、启动服务器并监听端口
// server.listen(port,callback)
/*
常见的服务及其默认端口
PHP 80
MYSQL 3306
javaweb 8080
node.js  3000
*/
server.listen(3000,function(){
console.log("正在监听3000端口");
});

看到上段代码,作为初学者,可能会产生很多疑问。比如:
1、第一步加载服务模块中的require是什么?
require()是commen.js中的语法,将多个 .js 文件合并成一个 .js 文件进行运行。
require()在node.js中叫做模块加载器。用来加载模块(.js 文件)。
2、require(“http”)可以返回服务对象,那么这里的http到底是什么?
http 是 node.js 的核心模块,就是一个 js 文件。
node.js 中模块分为核心模块、扩展模块和自定义模块。
核心模块:核心库在 node.js 的安装目录中,已经被完全打包;
扩展模块:在Node.js 环境上 非官方开发的功能模块;
自定义模块:自己定义的功能模块。
3、第二步 创建服务器 const server = http.createServer(function(request,response){ ...... });为什么会进入该方法?
http模块中已经定义了该方法,并且通过 exports 或者 module exports 方法导出该方法。
exports 方法:导出结果是一个 JSON 对象,导出的操作实际上就是 在该对象中添加新的属性
module.exports 方法:对象导出方式 ,是直接将 exports 对象进行新对象的替换或方法属性的替换 。
。。。。
代码运行: node 文件名
控制台显示正在监听3000端口:



在浏览器地址栏输入: 127.0.0.1:3000后,浏览器给出响应结果并且控制到输出请求到达

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息