node.js快速入门(一)

一、Node.js简介

Node.js 是一个基于 Chrome V8 引擎的 JavaScrip 运行环境。 Node.js 使用了一个事件驱动非阻塞式 I/O的模型。

JavaScrip是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

Node是一个类似于perl,python,ruby等的一个本地运行环境,理论上可以在它的基础上开发任何应用,使用expressjs库,可在node环境下开发高性能web服务器。

事件驱动是指在持续事务管理过程中,进行决策的一种策略,即跟随当前时间点上出现的事件,调动可用资源,执行相关任务,使不断出现的问题得以解决,防止事务堆积。

非阻塞式 I/O,也叫异步 I/O,显然对应的就是阻塞式 I/O。阻塞式 I/O 是指,当一个线程在执行 I/O 操作时,这个线程会阻塞,等待 I/O 操作完成后继续执行。故使用单线程非阻塞式I/O的node的性能优异。但存在线程崩溃的隐患。

二、安装配置

安装node.js和npm

sudo apt-get install nodejs
sudo apt-get install npm 
npm 是 Node.js 的包管理工具,用来安装各种 Node.js 的扩展

验证安装

$ node -v
v10.19.0  

$ npm -v 
6.14.4       

测试js运行环境

$ vi hlwd.js
console.log("hello world")

$ node hlwd.js
hello world #成功

三、创建服务器

Node.js 应用是由以下部分组成:

1.引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。

2.创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。

3.接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。

分析Node.js 的 HTTP 服务器

·第一行请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量。
·

·接下来调用 http模块提供的函数: createServer 。这个函数会返回 一个对象,这个对象有一个叫做listen 的方法,这个方法有一个数值参数,指定这个 HTTP 服务器监听的端口号

引入requred模块

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

vi server.js
var http = require("http");
创建服务器

使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。


var http = require('http');

http.createServer(function (request, response) {

    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // 发送响应数据 "Hello World"
    response.end('Hello World\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
测试服务器

以上代码我们完成了一个可以工作的 HTTP 服务器。

使用 node 命令执行以上的代码:

$ node server.js 
Server running at http://127.0.0.1:8888/                                                                                        

打开浏览器访问 http://127.0.0.1:8888/,可以看到一个写着 "Hello World"的网页

在这里插入图片描述

四、NPM介绍

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

允许用户从NPM服务器下载别人编写的第三方包到本地使用。

允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

常用 NPM 命令

安装常用的 Node.js web框架模块 express:

本地安装:将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录);可以通过 require() 来引入本地安装的包。

$ npm install express	

全局安装:将安装包放在 /usr/local 下或者你 node 的安装目录;可以直接在命令行里使用。

$ npm install express -g 

更新模块

$ npm update express

搜索模块

$ npm search express

卸载express模块

$ npm uninstall express

查看是否卸载成功

$ npm ls

清空NPM本地缓存

$ npm cache clear可以

查看某条命令的详细帮助

npm help <command>
使用package.json

package.json 位于模块的目录下,用于定义包的属性。Package.json 属性说明:

name - 包名。

version - 包的版本号。

description - 包的描述。

homepage - 包的官网 url 。

author - 包的作者姓名。

contributors - 包的其他贡献者姓名。

dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。

repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。

main - main 字段指定了程序的主入口文件,require(‘moduleName’)
就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。

keywords - 关键字

其他命令
#创建模块
$ npm init
#在npm资源库中注册用户
$ npm adduser
#发布模块
$ npm publish
使用淘宝 NPM 镜像

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

之后便可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm,如:

$ cnpm install [name]

五、Node.js REPL交互式解释器

Node 自带了REPL(Read Eval Print Loop:交互式解释器),可以执行以下任务:

读取 - 读取用户输入,解析输入的 Javascript 数据结构并存储在内存中。

执行 - 执行输入的数据结构

打印 - 输出结果

循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。

node.js的REPL类似于python终端,所以只做一些简单补充:

变量声明需要使用 var关键字
使用下划线_获取上一个表达式的运算结果

$ node

> var a = 1 +4
undefined
> var sum = _
undefined
> sum
5
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的一些特性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值