node.js(一)

   Node.js的简介

    Node.js 就是运行在服务端的 JavaScript。

    Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。

    Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

 

Node.js的特性

非阻塞I/O特性:

  • 阻塞:I/O时进程休眠等待, 等待I/O完成后再进行下一步(就是排队的时候,一个一个来按顺序处理)
  • 非阻塞:I/O时进程立即返回,进程不等待I/O完成, 继续往下执行  (就是大家先来领个号,立刻返回,等处理好后把结果通知给你)           

RESTful API

        RESTful API是一套协议来规范多种形式的前端和同一个后台的交互方式。RESTful API由后台也就SERVER来提供给前端来调用。前端调用API向后台发起HTTP请求,后台响应请求将处理结果反馈给前端。

单线程

        Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理。

事件驱动

        Node.js 使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。这个模型非常高效可扩展性非常强,因为web server一直接受请求而不等待任何读写操作。(这也被称之为非阻塞式IO或者事件驱动IO)在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数。

 

Node.js 安装配置

本章节我们将向大家介绍在 Windows 和 Linux 上安装 Node.js 的方法。

Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/

Node.js 历史版本下载地址:https://nodejs.org/dist/

安装

选择要安装的版本进行安装

windown安装

安装完成 查看node版本 命令  node  --version

 

步骤一:引入 required 模块

 

引入 required 模块

我们使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http

var http = require("http");

在 Node.js 中我们需要引入各种模块并实例化来运用,通常都是通过 require 指令来引入

步骤二、创建服务器

创建服务器

接下来我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。
实例如下,在你项目的根目录下创建一个叫 test.js 的文件,并写入以下代码:

var http = require('http');
http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8888);
console.log('Server running at http://127.0.0.1:8888/');

接收请求与响应请求

以上代码我们完成了一个可以工作的 HTTP 服务器。进入test.js所在目录,使用 node 命令执行以上的代码

接下来,打开浏览器访问 http://127.0.0.1:8888/,你会看到一个写着 “Hello World”的网页。

 

REPL 命令

  • ctrl + c - 退出当前终端,按下两次 ctrl + c 键就能退出 REPL。
  • ctrl + c 按下两次 - 退出 Node REPL。
  • ctrl + d - 退出 Node REPL.
  • 向上/向下 键 - 查看输入的历史命令
  • tab 键 - 列出当前命令
  • .help - 列出使用命令
  • .break - 退出多行表达式
  • .clear - 退出多行表达式
  • .save filename - 保存当前的 Node REPL 会话到指定文件
  • .load filename - 载入当前 Node REPL 会话的文件内容。

什么是 Node.js 模块系统?

Node.js 模块可以分为两大类,一类是核心模块,另一类是文件模块。

核心模块

直接通过require获取核心模块,例如:

var fs = require('fs')

核心模块拥有最高的加载优先级,如果有模块与核心模块命名冲突,Node.js 总是会加载核心模块。

 

 

 

 

 

exports 和 require

exports 和 require

Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象,接下来我们用个实例来解释

1.创建个hello.js文件代码如下

exports.world = function() {

console.log('Hello World');

}

2.创建文件test.js引入模块 hello.js

var hello = require('./hello');

hello.world();

require(‘./hello’) 引入了当前目录下的 hello.js 文件(./ 为当前目录,node.js 默认后缀为 js)

3.执行test.js文件输出 ‘Hello World’;

在 test.js 中通过 require(‘./hello’) 加载这个模块,然后就可以直接访 问 hello.js 中 exports 对象的成员函数了。

有时候只是想把一个对象封装到模块中第一步在hello.js封装对象

function Hello() {

var name;

this.setName = function(thyName) {

name = thyName;

};

this.sayHello = function() {

console.log('Hello ' + name);

};

};

module.exports = Hello;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值