node.js 是一个基于 Chrome v8 引擎的 javascript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 提供的包管理器 npm,成为世界上最大的开放源代码的生态系统。
简单说:用于 js 开发服务端程序
特点: 单线程、异步、事件驱动。
学完 nodejs 我们就可以做后端!加上js本可以做前端,最后我们就可以做一个完整的网站。
nodejs 官网
node.js 可以解析 js 代码(没有浏览器安全级别的限制),提供很多系统级别的 api,如:文件的读写、进程的管理、网络通信。。。。
简单来说是让js的执行脱离了浏览器。
下载地址 https://nodejs.org/zh-cn/download/ LTS 为长期稳定版,下载这个即可。安装直接双击 nodejs.exe,疯狂下一步即可!
安装完成 重启 vscode 或者系统,然后进入终端 执行 node -v 命令,查看 nodejs 安装版本号,如果输出版本号说明安装成功,反之安装失败。(如果安装失败,建议卸载,然后重启电脑-重新安装)
使用终端中验证
在你的项目中编写一个index.js文件,里面随便写一句js代码!
创建 index01.js 文件
终端中进入 index01.js 所在目录,在终端中执行
所谓模块就是一个文件,文件 内部封装了某个功能的对象或者是函数
定义模块
ajax.js 文件
加载模块
第三方模块,我们需要使用 node 自带的 npm 这个工具 下载
npm 类似于软件商店,任何程序猿使用 js 写的的功能都可以上传到 npm 这个网站上,www.npmjs.co m
当然我们可以使用下载,下载的时候需要使用 npm 命令,接下来我们学习npm 的使用
1-进入项目文件夹
vscode中直接选中文件夹右键,在终端中打开
console.log("hello nodejs");
在终端中执行:
node index01.js
var obj={
get:function(){
},
post:function(){
}
}
module.exports=obj
var obj=require('./ajax')
obj.get()
obj.post()
2-初始化 npm init
终端 直接输入 npm init ,自动 package.json 文件 ,这个文件是来记录我们的安装的第三方模块 的。
3- 本地安装 第三方模块
我们项目中需要用到的第三库模块,也叫项目依赖,也可以说是项目中依赖的模块。
命令:
比如说的咱们的项目中会用到express模块
使用命令 npm i express,安装了 lodash模块,同时把安装信息写入到了 package.json 文件, 本地安装,安装 express被下载到了 node_modules 里面
本地安装后 在 package.json 文件中会有 记录
4- 项目中安装的第三方模块
5-本地安装 开发依赖
nodemon-------监听文件的变化 重新执行 node 命令(类似前端中使用的 liveserver)
想要使用 nodemon 可以配合 npm 脚本使用,也可以 直接全局安装 nodemon 使用
5-1 配合 本地安装 配合 npm 脚本使用
nodemon 是一个监听 js 文件的变化,如果 js 文件改变了,就会重新执行 js 文件
npm i nodemon -D 开发依赖 (工具) npm i nodemon --save-dev
配合 npm 脚本
npm i 模块名
npm install express
"dependencies": {
"express": "xxxx"
}
let express = require('express')
"devDependencies": {
"nodemon": "^2.0.15"
}
终端中输入 npm run aaa 或者 npm start
5-2 直接全局安装使用
npm i nodemon -g
全局安装后直接 在终端中可以 输入 nodemon index.js
6-其他命令 npm i
自动检查 package.json 依赖 自动下载。
7-npm 下载源
直接使用 npm 下载速度可能比较慢
npmmirror.com是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10 分钟 一次以保证尽量与官方服务同步
更改 npm 的下载地址,下面两种任选一种就可以
1-修改npm 的下载地址
查看当前 npm 的下载源
以后我们使用 npm 安装模块就直接去 npmmirror 下载了
2- cnpm
如果采用第二种,我们以后使用cnpm命令咱就可以了
cnpm i express
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"aaa": "nodemon index.js",
"start": "nodemon index.js"
}
[npm config set registry https://registry.npmmirror.com/](npm config set registry https://registry.npmmirror.com/)
[npm config get registry](npm config get registry)
[npm install -g cnpm --registry=https://registry.npmmirror.com](npm install -g cnpm --registry=https://registry.npmmirror.com)
Express 介绍Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。
Express 框架核心特性:可以设置中间件来响应 HTTP 请求。
定义了路由表用于执行不同的 HTTP 请求动作。
可以通过向模板传递参数来动态渲染 HTML 页面。
express不对node.js本身的特性进行二次抽象 而是在基本功能上进行扩充
express完全是由路由和中间件构成的框架
从本质上来说一个express应用就是为了调用各种中间件
简单的说express可以很快速的让我们使用mvc的方式创建一个web应用(前后端可以分离,也可以不分离)
https://expressjs.com/ 英文官网
http://www.expressjs.com.cn/ 中文官网