一、nodejs基本介绍
nodejs是一个基于 Chrome V8 引擎的 JavaScript 运行环境,nodejs的API包括全局、内置模块、第三方模块等三部分。其中我们常见的用npm安装发布的依赖就是第三方模块,当然你也可以自己开发一个第三方模块。nodejs的核心包括内置的V8引擎和libuv开发包,V8引擎我们都熟悉浏览器上的引擎,运行js代码,libuv开发包主要内置了异步IO、事件驱动等核心模块。还有一个就是node底层,任何一个程序需要在系统中运行,都需要有一个兼容系统的底层代码,比如调用底层环境(windows,mac,linux)
二、用nodejs搭建一个服务
我们都知道,前端静态页面请求一个数据,都会用ajax发送一个请求给web server,我们就用nodejs搭建一个简单的webserver,我们新建一个文件夹,然后执行npm init(或者安装默认:npm init -y) 创建package.json文件,在创建一个demo.js文件,这样我们就可以引入http模块,并且打开该http服务,启动方式有两种如下,还有如何解决乱码问题。
const os = require('os')
// 获取cpus
const cpus = os.cpus()
console.log(cpus.length)
// 获取内存
const total = os.totalmem()
console.log(total/1024/1024/1024) // GB
// 剩余内存
console.log(os.freemem()/1024/1024/1024)
// ajax-->api-->web server(node js实现)
// 启动方式1.在命令行中执行:node demo.js
// 启动方式2.在package.json文件中配置启动方式:"start":"node demo.js",每次启动就可以在命令行中执行npm start 启动服务了
// 解决乱码问题,设置响应头,告诉浏览器用utf-8编码
const http = require('http')
const server = http.createServer((req, res) =>{
res.setHeader('Content-Type', 'text/plain;charset=utf-8')
res.end('Hello,你好世界')
})
server.listen(3000, '127.0.0.1', () => {
console.log('web服务启动成功')
})
package.json文件:
{
"name": "app3",
"version": "1.0.0",
"description": "",
"main": "demo.js",
"scripts": {
"start": "nodemon demo.js",
"start:node": "node demo.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^2.0.6"
}
}
三、使用nodemon服务自动重启
nodemon的作用:每次我们修改代码,可能都需要重启服务才能刷新,这样做太麻烦了,nodemon就帮我们每次修改代码后自动重启,具体使用如下:
安装完后重启服务:npm start
因为nodemon默认是我们修改了任何文件都会自动重启,甚至修改package.json都会重启,这样太影响效率,我们可以配置nodemon.json 指定修改后重启的服务
nodemon.json:(重启后生效)
四、使用nrm 管理npm源
源是什么:我们所需要的第三方安装包有的放在外网,有的淘宝上也有,则选择国内的可能就快一点,就可以用cnpm命令下载安装,这也就是为什么说有的时候npm安装更慢
安装:npm install nrm -g
使用nrm ls 查看nrm内置的源
使用nrm -h 查看nrm命令
如何使用:我们先用nrm current 查看当前使用的源,是npm,然后切换使用cnpm:nrm use cnpm ,在使用nrm current查看,发现变成了cnpm
五、使用nvm管理nodejs版本
为什么要使用:因为nodejs版本过多,每个项目可能用的node版本不一样,使用nvm就可以解决切换版本的烦恼。
安装:查看nvm官网安装方法
查看命令:nvm -h
查看node当前几个版本:nvm ls
切换nodejs版本:nvm use v10.14.0,然后查看node版本,node -v,会发现就切换了当前版本