玩命加载中 . . .

JS类流行web框架部署


§1 登录

§命令:
$ ssh -i C:\\Users\\Mr风语恺撒\\.ssh\\MySSHKey AzureUser@40.73.17.224

image-20200810152846778

§2 切换用户

§命令:
$ su - <username>

image-20200810152938819

§3 部署Node.js环境 (使用NVM安装多版本)

§NVM(Node Version Manager)是Node.js的版本管理软件,使您可以轻松在Node.js各个版本间进行切换。适用于长期做node开发的人员或有快速更新node版本、快速切换node版本的场景。

§3.1 使用git将源码克隆到本地的~/.nvm目录下,并检查最新版本。

§3.1.1 安装git
§命令:
$ yum install git

image-20200810162529694

§

image-20200810162747714

§3.1.2 clone代码
§命令:
$ git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

image-20200810162704143

§3.2 激活nvm

§命令:
$ echo ". ~/.nvm/nvm.sh" >> /etc/profile
$ source /etc/profile

image-20200810171501621

§3.3 列出Node.js的所有版本

§命令:
$ nvm list-remote

image-20200810172010505

§3.4 选择安装多个Node.js的版本

§命令:
$ nvm install v7.4.0
$ nvm install iojs-v3.3.1

image-20200810172051810

§3.5 查看已安装的Node.js的版本

§命令:
$ nvm ls

image-20200810172133391

§3.6 切换已安装的Node.js的版本

§命令:
$ nvm use <版本号(v6.9.5)>

image-20200810172146872

§3.7 配置完成后使用命令查看npm和node的版本

§命令:
$ npm -v
$ node -v

image-20200810182817867

§3.8 注意:重新登入后需编译并指定要使用的node.js的版本

§命令:
$ source /etc/profile
$ nvm use <版本号>

image-20200811163536322

§4 pm2安装配置

§4.1 介绍

§pm2是nodejs的一个带有负载均衡功能的应用进程管理器的模块,类似有Supervisor,forever,用来进行进程管理。

§4.2 安装

$ npm install pm2 -g

image-20200811183719485

§4.3 启动

pm2 start app.js
pm2 start app.js --name my-api       #my-api为PM2进程名称
pm2 start app.js -i 0                #根据CPU核数启动进程个数
pm2 start app.js --watch             #实时监控app.js的方式启动,当app.js文件有变动时,pm2会自动reload

§4.4 其他

操作 命令
查看进程 pm2 list<br/>pm2 show 0 或者 # pm2 info 0 #查看进程详细信息,0为PM2进程id
监控 pm2 monit
停止 pm2 stop all #停止PM2列表中所有的进程<br/>pm2 stop 0 #停止PM2列表中进程为0的进程
重载 pm2 reload all #重载PM2列表中所有的进程<br/>pm2 reload 0 #重载PM2列表中进程为0的进程
重启 pm2 restart all #重启PM2列表中所有的进程<br/>pm2 restart 0 #重启PM2列表中进程为0的进程
删除PM2进程 pm2 delete 0 #删除PM2列表中进程为0的进程<br/>pm2 delete all #删除PM2列表中所有的进程
日志操作 pm2 logs [--raw] #Display all processes logs in streaming<br/>pm2 flush #Empty all log file<br/>pm2 reloadLogs #Reload all logs
升级PM2 npm install pm2@lastest -g #安装最新的PM2版本<br/>pm2 updatePM2 #升级pm2
更多命令参数请查看帮助 pm2 --help

§5 JS类框架部署

§概要:

§现在 NodeJS 框架正在成为最常用的构建 Web 应用前后端的开发框架。这是自定义 Web 开发的首选环境。一些主要的NodeJS框架的优点
  • §实时工作环境
  • §简单的编码经验
  • §无缝数据流
  • §在整个开发过程中使用相同的代码模式
  • §方便易用的
§采用哪种框架完全取决于我们想要构建的网站和 Web 应用的类型。框架列表是无穷无尽的,在 JavaScript 社区中无处不在。
§10 个顶级 NodeJS 框架:
NestJS Hapi.JS Express.JS Socket.io Total.JS
Derby Meteor.JS Loopback Koa Sail.JS
§下面以NestJs以及ExpressJs的框架部署为例
§5.1 NestJs安装部署
§NestJs 是用 Node.js 构建的框架,用于构建高效、可扩展的 Node.js 服务器端应用。 Nest 使用渐进式 JavaScript,并使用 TypeScript 编写。使用 TypeScript 构建意味着 Nest 具有强大的类型功能,并且结合了OOP(面向对象编程),FP(函数式编程)和FRP(函数式响应编程)的元素。
§5.1.1 安装
$ npm i @nestjs/cli

image-20200811182054851

§5.1.2 创建新项目
$ npm clinest new project-name
$ nest new project-name

image-20200811182224410

import { NestFactory } from '@nestjs/core';
import { ApplicationModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(ApplicationModule);
  await app.listen(2000);
}
bootstrap();
§5.1.3 可选(使用Git安装TypeScript Starter项目)
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install

image-20200811190008914

§5.1.4 在端口上运行
$ npm run start

image-20200811190130003

§5.2 ExpressJs安装部署
§Express.JS 由核心 Node 项目团队的成员之一 TJ Holowaychuk 构建。大型社区支持此框架,因此具有不断更新和改革所有核心功能的优势。这是一个极简主义的框架,用于构建mobile应用程序和 API。
§强大的 API允许用户通过配置路由在前端和数据库(充当 HTTP 服务器框架)之间发送或接收请求。

express 的一个优点是它支持许多其他软件包和模板引擎,例如Pug、Mustache、EJS 等。

§5.2.1 全局安装
express 4.x版本之前 全局安装express 命令是 $ npm install express -g
express 4.x版本之后 全局安装express 命令是 $ npm install -g express-generator

image-20200813211204597

§5.2.2 本地安装

1.创建目录用来保存应用程序:

$ mkdir myapp
$ cd myapp

image-20200813212630790

2.初始化并未应用程序创建相关文件

$ npm init

image-20200813212736652

3.为程序设置各种信息(可以一路回车接收默认值)

image-20200813212828791

4.在目录中安装Express,并将其保存在依赖关系列表中

$ npm install express --save

image-20200813212846247

5.在目录中安装Express,并不将其保存在依赖关系列表中(可选)

$ npm install express --no-save
§5.2.3 HelloWorld示例
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

文章作者: Angus Lan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Angus Lan !
评论
  目录