Nodejs 快速学习

2023-11-09

1、Nodejs快速入门

1.1、安装

官网:https://nodejs.org/zh-cn/download/ 一路next安装即可

image-20210222215532132

cmd查看(是否)安装成功


image-20210222215857936

1.2、什么是Nodejs

注意:ES6语法完全兼容。

image-20210222220335723


image-20210222220258636

1.3、第一个Nodejs程序

1、建立一个项目文件夹, 并建立hello.js文件的hello world

image-20210222223051858

2、启动终端:ctrl + shift + y

或者:点击左边

image-20210222224319326

3、解释运行:node hello.js (注意:dir看目录地址, 要当前目录才行)

1.4、第二个Nodejs程序

证明:Nodejs是一门(服务端语言)

API:http://nodejs.cn/api/

建立:httpserver.js文件, 使用node httpserver.js在服务端监听8888端口
// 导入模块是:require 类似于import java.io
const http = require('http');       //看文档    http://nodejs.cn/api/

// 1、创建一个httpserver服务
// 2、监听端口8888
// 3、启动运行服务 node httpserver.js
// 4、在游览器访问http://localhost:8888
http.createServer(function(request, response){
    //告诉游览器:响应规范
    response.writeHead(200, {'Content-type':'text/html'});      //成功时,游览器用text解析
    response.end("<strong>hello server !!!</strong>");
}).listen(8888);

console.log("你启动的服务是:http://localhost:8888以启动成功!!!")

1.5、Nodejs操作mysql

1.5.1、安装mysql依赖

查API操作mysql:https://www.npmjs.com/package/mysql

vscode终端执行:npm install mysql

image-20210223083651475

1.5.2、对mysql表进行查询

创建一个:db.js文件 (内容如下)

// 1、导入mysql包
var mysql      = require('mysql');  

// 2、配置数据库连接信息       
var connection = mysql.createConnection({   
  host     : '127.0.0.1',
  port     : '3306',
  user     : 'root',
  password : '123456',          
  database : 'spring',
});
 
// 3、获取数据库:连接对象
connection.connect();                       
 
// 4、查询
connection.query('select * from user', function (error, results, fields) {   
  if (error) throw error;
  console.log('The solution is: ', results);
});
 
// 5、关闭连接
connection.end();                           

// 6、控制台:node db.js 执行

注意:运行时,可能出现

image-20210223090751629

解决方法:mysql中执行

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;


image-20210223090913041


2、NPM包管理器

2.1、简介

NPM全称:Node Package Manager, 是Node.js包管理工具, 是(全球最大)的(模块生态系统),    		里面所有的模块都是(开源免费的); 也是Node.js的包管理工具, 相当于后端的Mavean.

作用:
	1、快速构建nodejs工程
	2、快速安装和依赖第三个模块。比如 npm install mysql / redis 等等

NPM版本查询:
		cmd中输入:npm -v		

2.2、获取模块官网

https://www.npmjs.com/

2.3、快速构建nodejs工程

终端输入:npm init

将会获取到如下:package.json文件

快速构建nodejs工程生成文件:package.json讲解
此文件类似于:pom.xml文件, 用来管理依赖
{   
  "name": "npmpro",             //工程名
  "version": "1.0.1",           //版本
  "description": "my first nodejs project",
  "main": "index.js",           //入口js
  "scripts": {                  //运行脚本
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "jiankebaiding",    //开发者
  "license": "ISC"              //授权协议
}

2.4、总结:搭建过程

  • 1、快速构建nodejs工程命令

npm init / npm init -y

  • 2、安装依赖

npm install 依赖名1 依赖名2

如果:速度太慢,可以搜索(npm 淘宝镜像)

  • 3、安装模块导入

const 常量名 = require(‘依赖名/模块名’)

  • 4、导入后如何使用:查看官方文档

搜索:npm官网

https://www.npmjs.com/package/mysql

  • 5、执行文件

控制台:node 文件名.js (不加.js也可以运行)

  • 6、卸载模块

npm uninstall 模块名1 模块名2

  • 7、补充:复用模块

将该工程的package.json文件复制到, (新工程)后, 终端执行 npm install

2.5、附上老师笔记

image-20210223222117445


image-20210223222136296


image-20210223222154612


image-20210223222213666


3、Babel

3.1、简介

image-20210223223515802


3.2、安装方法

npm install -g babel-cli //官网:安装命令

cnpm install -g babel-cli //阿里镜像:安装命令

babel --version //查看是否安装成功

3.3、babel转换步骤

第一步:创建babel文件夹

image-20210223225559451


第二步:初始化项目

npm init -y
image-20210223225730112

第三步:创建src/example.js

可以使用node example.js 运行一下

//转码前
let arr = [1, 2, 3, 4, 5];

input = array.map(ele=>ele * 2);
console.log(input);

第四步:配置.babelrc

Babel的配置文件是.babelrc, 存放在项目的根目录下, 该文件用来设置(转码规则和插件)如下:

{
	"presets":["es2015"],
	"plugins":[]
}

第五步:(根目录下)安装转换器

cnpm install --save-dev babel-preset-es2015

第六步:用babel转换器,转换整个src目录到dist目录

babel src -d dist		//利用babel转换器,将src目录下的所有文件, 转换到dist目录

补充:自定义脚本转换(也需要安装:转换器)

4、模块化

4.1、模块化产生的背景

1、时代趋势:
	网站逐渐变成“互联网应用程序”, 嵌入网页的Javascript代码越来越庞大, 越来越复杂。

2、产生需求:
	JavaScript模块化编程, 已经成为了一个迫切的需求。

3、其中阻碍:
	理想条件下,开发者只需要实现(核心业务逻辑), 其余可以加载别人的模块,但是JavaScript
	不是一种(模块化编程语言), 它不支持“类”class, "包"package概念, 也不支持“模块module.
	
4、最终结果:
	产生了模块化规范:CommonJs模块化规范、ES6模块化规范

4.2、CommonJS规范

导出(已写好的)模块: module.exports = {key:value}

导入(已导出的)模块:const m = require(“文件名”);

  • 导出代码:导出模块.js文件
//加法
const sum = function(a, b){
    return a + b;
}   

//减法
const sub = function(a, b){
    return a - b;
}


//导出模块
module.exports = {
    sum,
    sub
}
  • 导入代码:导入模块.js文件
//导入模块
const m = require("./导出模块");

//调用:加法
console.log(m.sum(1, 2));

//调用:减法
console.log(m.sub(1, 2));

4.3、ES6规范(推荐这种)

方法一:(传统方法)

image-20210224114026769

方法二:简写方法(推荐)

image-20210224114056604

注意:不支持ES6报错内容,需要转ES5

image-20210224114944102

5、Webpack

官方文档:https://www.webpackjs.com/concepts/

5.1、简介

image-20210224121618844

5.2、Webpack安装

1、全局安装

npm install webpack -g //打包工具

npm install webpack-cli -g //webpack客户端

2、安装后查看版本号

webpack -v //用这两个中的:谁都会显示(二者版本)

webpack-cli -v

5.3、使用Webpack打包js

  • 总步骤:概括
1、创建一个nodejs项目: npm init -y
2、创建一个src目录
3、在src存放两个需要合并的js文件:util.js、common.js   
4、准备一个:入口文件main.js, 其实就是(将模块集中)引入
5、JS打包:
	在(根目录)下定义一个 webpack.config.js文件配置打包的规则
	执行webpack查看效果:终端执行 webpack
	webpack -w可以实现监听

image-20210224154530001


image-20210306205743081
  • 第一步:webpack文件夹下,构建nodejs项目

终端输入:npm init -y

  • 第二步:在src目录下,创建common、util、main 三个js文件

    注意:exports导出, require导入关键字

    image-20210224161249841

  • 第三步:(根目录)下创建,webpack.config.js

image-20210224161504007

  • 第四步:根目录执行命令

打包:webpack

监听:webpack -w

  • 第五步:测试

创建一个html文件,引入打包好的js文件。

5.4、使用Webpack打包css

  • 第一步:安装style-loader 和css-loader

image-20210224162730508

npm install --save-dev style-loader css-loader

  • 第二步:修改webpack.config.js文件
//导入path模块, path模块是nodejs的内置模块
const path = require('path');

//定义打包规则
module.exports = {
    //1、入口函数从哪里:开始打包编译
    entry: "./src/main.js",
    //2、编译成功后要把内容输出到哪里去
    output:{
        //2-1、定义输出的指定目录, __dirname是当前项目(根目录)
        path:path.resolve(__dirname, "./dist"),
        filename:"bundle.js"
    },

    //CSS打包规则:配置
    module:{
        rules:[
            {
                test:/\.css$/, //打包规则应用到:所有css结尾的文件上(目录同上js目录)
                use:['style-loader', 'css-loader']
            }
        ]
    }
}
  • 第三步:src下创建style.css文件
body{
    background: red;
    font-size: 33px;
}
  • 第四步:main.js中引入style.js文件
//导入:common、util模块
const common = require("./common.js");	
const util = require("./util.js");

//引入:style.css文件
require("./style.css")              //主要是这里!!!!

//先做100 + 200的加法, 然后显示到(控制台、游览器)
common.info("最终的值:" + util.add(100, 200));
common.info("最终的值:" + util.sub(200, 200));
  • 第五步:根目录下打包, 监听

webpack -w

  • 拓展:可用(脚本)代替webpack -w

package.json中:添加key : value 例如:dev : “webpack -w”

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"webpack -w"
  },

配置好后终端输入:npm run dev

6、Vue-Element-admin

官网:https://panjiachen.gitee.io/vue-element-admin-site/zh/

6.1、简介

vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。

6.2、下载该项目

google:Vue-Element-admin (去gitHub下载)

6.3、切换中文,运行

  • 第一步:git配置好(环境变量)
  • 第二步:VScode打开克隆好的(项目)
  • 第三步:切换到18i版本,就有中文版本

终端执行:git checkout i18n

  • 第四步:npm包依赖下载

npm install

npm install --registry=https://registry.npm.taobao.org 阿里镜像

  • 启动项目:

npm run dev

6.4、需要记住

image-20210224175523627

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nodejs 快速学习 的相关文章

  • FFmpeg降低编码延迟记录

    背景 最近使用FFmpeg编码时 264 265的软编和NVIDIA硬编 有不同程序的缓存 具体表现就是调用avcodec send frame多次后才能调用avcodec receive packet一次 自测x264缓存了40帧 h26
  • Linux_Vs2017 error pthread

    解决办法 右键 gt 属性 添加pthread
  • 深入理解python中的None对象

    1 None None是python中的一个特殊的常量 表示一个空的对象 空值是python中的一个特殊值 数据为空并不代表是空对象 例如 等都不是None None和任何对象比较返回值都是False 除了自己 gt gt gt L gt
  • eclipse中将Maven Dependencies Libraries移除后的恢复办法

    参考文章 转载地址 在eclipse中 如果你不小心在properties gt Java Build Path中将Maven Dependencies Libraries 移除了怎么恢复呢 解决办法 1 右键你的项目 gt Maven g

随机推荐

  • 传输层 —— FTP

    一 FTP 二 FTP工作原理
  • C++学习(四九零)add_library生成动态库和静态库

    1 静态库 add library hello library STATIC src hello cpp 2 动态库 注意这里是SHARED 而不是DYNAMIC add library hello library SHARED src h
  • mac下使用docker安装mysql

    拉取mysql镜像 docker pull mysql 拉取完后大致是这样的控制台输出 因为我这里已经拉取过了 这时候我们查看一下镜像是否拉取下来 查看镜像拉取状态 docker container ls 在这里我们可以看到我的镜像是在5天
  • 函数的声明和定义

    C语言中一个完整的函数由函数首部和函数体构成 而且定义函数时两者都是必不可少的 函数声明表示有这么个函数了 函数定义就是具体实现了 举个例子 函数声明 int fun int a int b 函数定义 int fun int a int b
  • 目标跟踪算法三:Modeling and Propagating CNNs in a Tree Structure for Visual Tracking (VOT2016冠军)

    目标跟踪算法三 Modeling and Propagating CNNs in a Tree Structure for Visual Tracking VOT2016冠军 文章链接 https arxiv org pdf 1608 07
  • 跟着英雄刷算法-因式分解和枚举

    补上前天落下的 题目一 int kthFactor int n int k int cnt 0 for int i 1 i lt n i if n i 0 k if 0 k return i return 1 题目二 int closest
  • 使用Keras和深度确定性策略(DDPG)来玩TORCS

    背景 DQN的一大局限性是输出 动作是离散的 而车辆转向是连续的 使DQN适应连续域的一种明显方法是简单的离散化操作空间 然而只是简单地离散化操作空间会受到 维度的诅咒 问题 深度确定性策略由三种技术结合 1 确定性策略梯度算法 输出的是每
  • 由用户反映DroidPilot安装之后,License没有同步安装 - 解决办法

    由用户反映DroidPilot安装之后 License没有同步安装 这个原因是在有些机器的注册表无法正常设置License项引起的的 只需手工重新安装一次License就可以解决 方法如下 1 启动cmd命令行 2 进入脚本设计器安装目录
  • 只保留日期_如何在excel中自动填写日期,以5分钟为增量,批量生成数字

    日期和时间可以自动填充 Excel中的数字除外 日期可以按天 月 年和工作日填充 时间可以按小时 分钟和秒递增填充 填写日期的方法有三种 一种是拖拽自动填写 另一种是双击单元格填写手柄自动填写 第三种是用序列填写大量数据 如填写一年 几年甚
  • 【爬虫】JS逆向解决反爬问题系列4——nonce破解

    欢迎来到我的博客 作者 秋无之地 简介 CSDN爬虫 后端 大数据领域创作者 目前从事python爬虫 后端和大数据等相关工作 主要擅长领域有 爬虫 后端 大数据开发 数据分析等 欢迎小伙伴们点赞 收藏 留言 本次博客内容将讲解关于nonc
  • a标签禁用

    a 链接 a 以上写法不能实现a标签禁用功能 Can t bind to disabled since it isn t a known property of a 正确写法 a href 链接 a href一定要加 不加实现不了置灰 a
  • Kettle是什么(ETL工具)

    1 Kettle是什么 Kettle是一个开源的ETL工具 全称为Pentaho Data Integration PDI 它可以用于从不同的数据源中提取数据 进行转换和加载到目标数据源中 Kettle支持多种数据源的操作 如关系型数据库
  • 【笔记~】使用js实现搜索排序(el-table)

    直接看代码 div div class serchBox div div
  • TAQS.IM Solo v1.2.11 WiN 中东方韵律合成器

    TAQSIM Solo 不仅准备了虚拟合成与采样播放的多层级混合引擎 还为音乐创作者们带来了大量现代世界音乐中的音色 不仅包括合成音色 还有与世界各地音乐家合作带来的乐器音色 比如弦乐器 TAQSIM Solo 采用了三层级合成器引擎 每个
  • Python3、setuptools、Pip3安装详解

    博客核心内容 1 Python3安装 2 setuptools安装 3 Pip3安装 之所以写这篇博客 也是有很多原因了 每次安装都要从网上各种百度 网上的答案也是各种各样 于是决定好好总结一下 下面是我在安装的过程中参考的几篇博客 附上相
  • nft术语解释

    NFT 爱好者 原文用的是nerds 翻译作书呆子 我感觉不太合理 我写成爱好者 在谈论这个东西时候总是会有一堆让人眼花缭乱的术语 对非圈内人来说会感觉难以理解 这里整理了23个术语解释来帮助你理解 作为nerds的其中之一 我过滤掉了一些
  • Mysql中的日期与时间类型

    MySQL有多种表示日期和时间的数据类型 不同的版本可能有所差异 MySQL8 0版本支持的日期和时间类型主要有 YEAR类型 TIME类型 DATE类型 DATETIME类型和TIMESTAMP类型 YEAR类型通常用来表示年 DATE类
  • Vue Cli3.x-4.x 实现rem适配

    Vue移动端rem适配 1 安装lib flexible和postcss px2rem npm install lib flexible save npm install postcss px2rem save 2 在main js中引入l
  • JavaScript 数组塌陷

    概念 数组塌陷 在对数组进行操作的时候 会使数组的长度产生变化 同时 操作的数组那个项的下一个索引会被跳过 从而造成数组的某项会被跳过 这种叫做数组塌陷现象 例子 let arr 1 2 3 3 3 3 3 3 3 4 5 6 7 8 9
  • Nodejs 快速学习

    1 Nodejs快速入门 1 1 安装 官网 https nodejs org zh cn download 一路next安装即可 cmd查看 是否 安装成功 1 2 什么是Nodejs 注意 ES6语法完全兼容 1 3 第一个Nodejs