# 通过 node 创建 web 服务器

1. 创建文件夹,在文件夹中打开终端

2. 初始化包管理工具

npm init -y

3. 安装 express   

npm install express --save

4. 安装 connect-history-api-fallback(实现history, 普通服务器不需要)

npm install connect-history-api-fallback --save

5. 安装 compression (开启 gzip 配置)

使用 gzip 可以减小文件体积,使传输速度更快, 可以通过服务器端使用 Express 做 gzip 压缩

npm install compression -S

6. 创建一个 dist 文件夹, 把要部署的项目复制进来

7. 新建入口文件( app.js),  输入以下内容 (不需要 history, 删掉 history 变量)

const express = require('express') // 导入 express
const compression = require('compression') // 导入 compression
const history = require('connect-history-api-fallback') // 导入 connect-history-api-fallback
const app = express() // 创建 web 服务器
const childProcess = require('child_process')app.use(compression()) // 启用中间件(一定要写在托管静态资源前面)
app.use(history()) // 配置vue history模式,这里千万要注意,要在static静态资源上面
app.use(express.static('./dist')) // 托管静态资源// 启动 web 服务器(手机可以访问 )
const hostname = getIPAddress()
const port = 88app.listen(port, hostname, function (err) {if (err) {console.error('启动服务器失败!')} else {console.log(`web server running at http://${hostname}:${port}`)// 浏览器打开childProcess.exec(`start http://${hostname}:${port}`)}
})// 获取本机ip地址
function getIPAddress() {var interfaces = require('os').networkInterfaces()for (var devName in interfaces) {var iface = interfaces[devName]for (var i = 0; i < iface.length; i++) {var alias = iface[i]if (alias.family === 'IPv4' &&alias.address !== '127.0.0.1' &&!alias.internal) {return alias.address}}}
}

  8. 终端运行 node app.js, 返回  'web server running at http://本机ip+端口', 则项目运行成功

  9. 访问地址:

http://本机ip+端口

#  HTTPS 服务说明

传统的 HTTP 协议传输的数据都是明文,不安全

采用 HTTPS 协议对传输的数据进行了加密处理,可以防止数据被中间人窃取,使用更安全

# 使用 pm2 管理应用

开启 pm2 当你不关机情况下,关闭终端命令,网站还是会存在!

pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能

1. pm2需要全局安装(必须在管理员中运行): npm install -g pm2

2. 启动项目:pm2 start 启动的入口文件(一般为app.js) --name 名称

3. 重命名项目: pm2 start 启动的入口文件 --name 重命名

4. 查看运行项目:pm2 ls

5. 重启项目:pm2 restart 名称

6. 重新启动所有项目: pm2 restart all

7. 停止项目:pm2 stop 自定义名称

8. 停止所有项目:pm2 stop all

9. 删除项目:pm2 delete 自定义名称

10. 删除所有项目:pm2 delete all

11. 查看某个项目具体情况: pm2 describe 自定义名称

12. 查看pm2的日志: pm2 logs 自定义名称

13. 查看项目的资源消耗情况:  pm2 monit

node 部署本地服务器相关推荐

  1. Rap部署本地服务器

    RAP是一个可视化接口管理工具 通过分析接口结构,动态生成模拟数据,校验真实接口正确性, 围绕接口定义,通过一系列自动化工具提升我们的协作效率.我们的口号:提高效率,回家吃晚饭! rap网页版 htt ...

  2. 1.1.node搭建本地服务器

    1.创建一个服务器文件夹 在本地创建文件夹,用于存储服务器相关文件 2.把两个配置文件拷贝过去 代码太长放在文章末尾了 3.根据刚刚拷贝的package配置安装依赖 在服务器文件夹qmcn_s下运行命 ...

  3. 关于node启动本地服务器的一些问题

    不要再每个盘的根目录下面启动git bash,下载node modules,会导致异常错误产生: 转载于:https://www.cnblogs.com/alww/p/5943923.html

  4. 旧手机搭建本地服务器

    前言:之前购买的腾讯云学生服务器即将过期,手头拮据的我把目光看向了一部备用机 思路:一部已经获取root权限的手机-部署Linux系统-安装宝塔面板-一键部署本地服务器 1.前期准备 ​ 首先在旧手机 ...

  5. node.js 微信小程序 部署服务器_微信小程序开发入门(一),Nodejs搭建本地服务器...

    1.  如何模拟真实环境中,读取服务端数据,首先需要使用Nodejs搭建一个本地服务器的环境. 在搭建web服务器之前,需要先安装node.js(安装版本最好为6.9.x) 安装后node.js,接下 ...

  6. android studio使用nodejs本地服务器json数据_使用Node.js的Alexa技巧

    可以使用AlexaLambda函数或RESTAPI端点开发Alexa技能.Lambda函数是Amazon实现AWS中提供的无服务器功能.Amazon建议使用Lambda函数,尽管它们不容易调试.虽然您 ...

  7. 本地 MarkDown 怎么部署到服务器上?教你使用 Docsify 搭建个人博客

    使用Docsify搭建文档类型网站 docsify 可以快速帮你生成文档网站.不同于 GitBook.Hexo 的地方是,它不会生成静态的 .html 文件,所有转换工作都是在运行时.如果你想要开始使 ...

  8. 如何使用Node.js和CloudFormation在AWS Lambda中构建和部署GraphQL服务器

    介绍 (Introduction) I have been building GraphQL APIs in a Serverless environment for over 3 years now ...

  9. 【前端Vue+后端Node.js+MySql】部署到服务器

    [前端Vue+后端Node.js+MySql]部署到服务器 文章目录 [前端Vue+后端Node.js+MySql]部署到服务器 1.买服务器 2.服务器操作 2.1.修改服务器密码,xshell登录 ...

最新文章

  1. solr与mysql数据同步的方案
  2. 谈谈 Android MVP 架构 | 掘金技术征文
  3. 下载了一堆mysql_干掉一堆mysql数据库,仅需这样一个shell脚本
  4. vue2.0无限滚动加载数据插件
  5. HDU 4556 Stern-Brocot Tree
  6. React开发(197):文件名错误
  7. python kafka获取最新的offset
  8. Kubernetes 1.4安装后查看记录
  9. wpf项目无法使用针式打印机_针式打印机的常见故障和解决方法2
  10. python学习[一]
  11. 检查压缩包是否损坏_【安全知识】运动安全带检查PPE(个人防护装备)检查程序与表格...
  12. 如何使用Zend Expressive建立NASA照片库
  13. Dubbo 注册中心详解
  14. [Android开发] Xposed 插件开发之一: Xposed入门
  15. 算法刷题打卡第43天:Dota2 参议院
  16. 初识Android 制作一个简单的记账本
  17. Vim指令对应的英语全称
  18. 韩剧你是我的命运分集大结局
  19. [ MySQL ] 使用Navicat进行MySQL数据库备份 / 还原(Part 2:备份.sql文件方式)
  20. YOLOV1-目标检测综述

热门文章

  1. MySQL去除重复数据,保留一条数据
  2. 人月神教α阶段冲刺报告(11/12)
  3. VC++进行64位整数网络字节序与主机字节序相互转换方法
  4. 4c钻石净度魔术语言,吉语珠宝课堂:钻石4C分级之Clarity(净度)
  5. 蓝牙SOC EFR32BG22C112 ①开发环境
  6. Nodejs基于express+multer的文件上传
  7. c定义一个整型数组_C语言学习|数组
  8. 版本库重新定位时svn uuid不一致问题
  9. 服务器2012系统关机,远程服务器2012关机
  10. Vue 结合 echarts 原生 html5 实现拖拽排版报表系统