Nodejs介绍,什么是Node.js
Node 是一个让 JavaScript 运行在服务端的开发平台.
- 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
- Node.js内置了Chrome的V8 引擎,可以在Node.js环境中直接运行JavaScript程序:
- Node.js没有浏览器API,即document,window的等。
- 增加了许多Node.js 专属API,例如文件系统,进程,http功能。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
底层架构是:javascript.
文件后缀:.js
浏览器的内核包括两部分核心:
DOM渲染引擎;
- java script 解析器(js引擎)
- js运行在浏览器内核中的js引擎内部
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<!-- Dom渲染引擎会将html元素渲染成相应的表现形式 -->
<h1>Hello Node.js</h1>
<!-- JavaScript解析引擎会在浏览器中解析并执行JavaScript代码 -->
<script>
alert('hello Node.js')
</script>
</body>
</html>
Node.js是脱离浏览器环境运行的JavaScript程序,基于V8 引擎
Node.js没有浏览器API,即document,window的等。
Nodejs下载和安装
下载对应你系统的Node.js版本:
下载地址:https://nodejs.org/zh-cn/download
帮助文档:https://nodejs.org/zh-cn/docs
关于Nodejs:https://nodejs.org/zh-cn/about
安装默认安装即可,安装完成之后,查看是否安装成功:
node -v
Nodejs入门
运行一个程序
案例:01-hello-node.js
console.log('Hello Node.js')
打开命令行终端:Ctrl + ~
进入到程序所在的目录,输入
node 01-hello-node.js
常见问题
如果安装Node.js之前已经打开了VS Code,则会看到如下错误
解决方案:重启VSCode或者重启你的电脑
Node - 实现请求响应
1、创建 httpserver.js ;
// 导入模块是require 就类似于import java.io
const http = require('http');
// 1: 创建一个httpserver服务
http.createServer(function(request,response){
// 浏览器怎么认识hello server!!!
response.writeHead(200,{'Content-type':'text/html'}); //这句话的含义是:告诉浏览器将
// 以text-html去解析hello server 这段数据。
// 给浏览器输出内容
response.end("<strong>hello server!!!</strong>");
}).listen(8888); // 2: 监听一端口8888
console.log("你启动的服务是:http://localhpst:8888以启动成功!!");
// 3: 启动运行服务 node httpserver.js
// 4: 在浏览器访问http://localhost:8888
2、运行服务器程序;
node httpserver.js
3、服务器启动成功后,在浏览器中输入:http://localhost:8888/ 查看webserver成功运行,并输出html页面
4、停止服务:ctrl + c
文件的读取
案例:02-read-file.js
// 引入Node.js文件系统模块:
// fs是Node.js自带的模块,使用Node.js中的关键字require将模块引入,使用const定义模块常量
const fs = require('fs')
//调用readFile方法读取磁盘文件:异步操作
fs.readFile('./他.txt', function (err, data) {
//当文件读取失败时,可以获取到err的值,输出错误信息
if (err) throw err
//当文件读取成功时,可以获取到data的值,输出响应的内容
console.log(data.toString())
})
console.log('读取文件')
Node-操作MYSQL数据库
参考:https://www.npmjs.com/package/mysql
1:安装mysql依赖
npm install mysql
2:定义db.js进行操作
//1: 导入mysql依赖包, mysql属于第三方的模块就类似于 java.sql一样的道理
var mysql = require("mysql");
// 1: 创建一个mysql的Connection对象
// 2: 配置数据连接的信息
var connection =mysql.createConnection({
host:"127.0.0.1",
port:3306,
user:"root",
password:"mkxiaoer",
database:"testdb"
});
// 3:开辟连接
connection.connect();
// 4: 执行curd
connection.query("select * from kss_user",function(error,results,fields){
// 如果查询出错,直接抛出
if(error)throw error;
// 查询成功
console.log("results = ",results);
});
// 5: 关闭连接
connection.end();
// 最后一步:运行node db.js 查看效果
3:新建数据库:01_user表
DROP TABLE IF EXISTS `kss_user`;
CREATE TABLE `kss_user` (
`id` int(11) NOT NULL,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
INSERT INTO `kss_user` VALUES (1, 'zhangsan');
INSERT INTO `kss_user` VALUES (2, 'lisi);
SET FOREIGN_KEY_CHECKS = 1;
4、运行db.js
node db.js
Node.js的作用
1、Node.js的应用场景
- 如果你是一个前端程序员,想开发类似JavaWeb的简单后端程序,那么Node.js是一个非常好的选择。
- 如果你是一个架构师,想部署一些高性能的服务,那么Node.js也是一个非常好的选择。
- 通常他会被用来作一个BFF层,即 Backend For Frontend(服务于前端的后端),通俗的说是一个专门用于为前端业务提供数据的后端程序。
2、BFF 解决什么问题
- 一个前端页面向 服务A 和 服务B 发送请求,不同的微服务返回的值用于渲染页面中不同的组件。此时,所有的数据在PC端浏览器渲染。
我们可以使用一个BFF层提前将页面渲染好,发送给浏览器,那么BFF层可以提前将多个服务的数据聚合起来。