node.js入门

目录

简介

安装配置

npm

第一个Node.js应用

回调:

事件

模块:

路由:

 

Express 框架


简介

Node.js是一个Javascript运行环境(runtime)

有大佬开发了一个Google  v8 引擎在服务端运行的 javascript, 它就叫做 node.js

(node.js 对于javascript   就像tomcat对于Java)

安装配置

下载安装node.js   配置环境变量

控制台中查看版本

node --version

npm

NPM是随同NodeJS一起安装的包管理工具,用来下载别人的模块,发布自己的模块

npm -v

所有npm都是发布在 https://www.npmjs.com/ 上面, 注册激活账户

1. 编写模块

2. 创建package.json 文件,告诉 npmjs.com 这个模块的相关信息  scripts字段,可以用于指定脚本命令,供npm直接调用

3. 登录,发布

npm adduser

npm publish

  "scripts": {
    "test": "mocha test/"
  }

npm run test

 

第一个Node.js应用

Node.js应用是由哪几部分组成的:

  1. 引入required模块:我们可以使用require指令来载入Node.js模块。
  2. 创建服务器:服务器可以监听客户端的请求,类似于Apache 、Nginx等HTTP服务器。
  3. 接收请求与响应请求:服务器很容易创建,客户端可以使用浏览器或终端发送HTTP请求,服务器接收请求后返回响应数据。

创建项目, 在src下新建文件 server.js, 然后用javascript开发程序

1.require引入模块
    var http = require('http'); //引入http模块
    var url = require('url'); //引入url模块
    var querystring = require('querystring');// 引入querystring 库

3.service函数用来处理请求和响应 , 类似servlet里的doGet, doPost方法
    function service(request, response){
    	//请求的方式
    	console.log("method - " + request.method);
    	//请求的url
    	console.log("url - " + request.url);
        response.writeHead(200, {'Content-Type': 'text/plain'});
        response.end('Hello Node.js');
    }
2.基于service函数来创建服务
    var server = http.createServer(service);
    //服务监听8088端口
    server.listen(8088);

控制台中运行程序

node server.js

访问http://127.0.0.1:8088/ 就会触发程序

 


回调:

异步编程依托于回调来实现, Node 所有 API 都支持回调函数

我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求

回调function(接收错误对象 , 接收回调函数)

 

阻塞与非阻塞案例: 

//阻塞读取文件
var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("读取文件结束");


//非阻塞读取文件
var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
    console.log("读取文件结束");
});
console.log("正在读文件中,先干其他事");

事件循环

引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件

 


模块:

一个 Node.js 文件就是一个模块, 这个文件可能是JavaScript 代码、JSON或者编译过的C/C++ 扩展。

就像java的jar包, 可以调用的,能够实现某些功能的代码文件


Stream(流模块)

Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。

该抽象接口是可读、可写或是既可读又可写的,通过这些接口,我们可以和磁盘文件、套接字、HTTP请求来交互,实现数据从一个地方流动到另一个地方的功能。


路由:

就是根据不同的请求调用不同的服务模块,  URL到函数的映射 相当于springboot开发各个controller对应的方法

例如:/users  - - >  调用 getAllUsers()函数

          /users/count/ - - > 调用 getUsersCount()函数

         就是把路径与函数进行一一对应,通过路径信息调用特定的函数

路由功能实现:

  • 入口模块 index.js
  • 服务器模块 server.js
  • 路由模块 router.js
  • 业务处理模块 xxx.js......

浏览器访问入口模块index,

index调用服务器模块 server, server获取请求值并传给路由模块router, 

router路由模块根据请求值调用对应的业务处理模块

 


 


Express 框架

express 是一个 node.js Web应用框架,使用 Express 可以快速地搭建一个完整功能的网站。

安装 express 框架

npm install express --save

在 node_moduels目录下就会创建一堆模块,这些都是 express 间接要依赖的模块

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值