Node Express服务器设置与优化
一、代码部分
* 启用gzip压缩,减少网络数据量
var compression = require('compression')
var express = require('express')
var app = express()
app.use(compression())
* 不用使用synchronous函数, 阻断性的, 减慢响应速度
* 不用使用console.log系列函数
因为console.log()和console.error()是同步操作synchronous,
* exceptions处理
** 不要listen它: uncaughtException,否则,将改变process, 让broken的process继续运行,后果是可帕的;
就让它crash, 再restart, 这是最好的恢复。
** try-catch无法抓住异步代码中的错误,
** 异步代码的exception用promise的catch选项
queryDb()
.then(function (data) {
// handle data
return makeCsv(data)
})
.then(function (csv) {
// handle csv
})
.catch(next)
二、设置部分
* 设置NODE_ENV 为 “production”, 而不是“development”, 好处是:
** Cache视图模板
** Cache CSS文件.
** 生成较少的verbose error messages.
实施方法:
*** With Upstart,
# /etc/init/env.conf
env NODE_ENV=production
*** With systemd
# /etc/systemd/system/myservice.service
Environment=NODE_ENV=production
* 让app能够自动restart, 如果crash的话
*** 使用process manager
*** 使用init system
* Run your app in a cluster
* Use a load balancer
* Use a reverse proxy
三、Routing
见:”ExpressJs server中Router的设置“ http://www.cnblogs.com/GameEngine/p/5226235.html
https://expressjs.com/en/advanced/best-practice-performance.html#use-gzip-compression
Node Express服务器设置与优化的更多相关文章
- mysql笔记05 优化服务器设置
优化服务器设置 1. MySQL有大量可以修改的参数--但不应该随便去修改.通常只需要把基本的项配置正确(大部分情况下只有很少一些参数时真正重要的),应将更多时间花在schema的优化.索引,以及查询 ...
- websocket服务器推送 (node+express+vue+socket)
简介: 此项目需要懂一点node.express 功能: 1.前端用户登录,查看服务端推送的消息,用户只能在一个地方登录,也就是单点登录 2.服务端首先登录,上传需要推送的信息文本,后台读取文本后,存 ...
- 零基础实现node+express个性化聊天室
本篇文章使用node+express+jquery写一个个性化聊天室,一起来get一下~(源码地址见文章末尾) 效果图 项目结构 实现功能 登录检测 系统自动提示用户状态(进入/离开) 显示在线用户 ...
- node+express+mongodb初体验
从去年11月份到现在,一直想去学习nodejs,在这段时间体验了gulp.grunt.yeomen,fis,但是对于nodejs深入的去学习,去开发项目总是断断续续. 今天花了一天的时间,去了解整理整 ...
- Node+Express的跨域访问控制问题:Access-Control-Allow-Origin
问题一:项目A通过Ajax访问项目B的接口,获取json数据,项目B采用Node+Express技术栈.项目A可能遇到跨域访问控制问题. 问题二:vue-resource 能够跨域,一般使用jsonp ...
- Express服务器开发
作者 | Jeskson 来源 | 达达前端小酒馆 Express服务器开发 创建Express应用程序,Express路由,pug视图模板的使用 Express简介: 让我们来创建Express应用 ...
- react + node + express + ant + mongodb 的简洁兼时尚的博客网站
前言 此项目是用于构建博客网站的,由三部分组成,包含前台展示.管理后台和后端. 此项目是基于 react + node + express + ant + mongodb 的,项目已经开源,项目地址在 ...
- 【原】小玩node+express爬虫-2
上周写了一个node+experss的爬虫小入门.今天继续来学习一下,写一个爬虫2.0版本. 这次我们不再爬博客园了,咋玩点新的,爬爬电影天堂.因为每个周末都会在电影天堂下载一部电影来看看. talk ...
- Node+Express+node-mysql 实战于演习 全套mysql(增删改查)
最近这段时间研究Node感觉不错,自己做了一个增删改查,虽然有些简陋,但是思想是想通的,其实所有项目都是增删改查,有助于初学者快速掌握Node 首先 本实例展示的是基于Node+Express+nod ...
随机推荐
- python ----列表、字符串、元组之间转换小结
字符串转换列表 li =list("adfadfsf") #内部使用for循环 print(li) #输出结果:['a', 'd', 'f', 'a', 'd', 'f', 's' ...
- python中字符串格式化
username='小黑'age=18high=1.88s2='欢迎%s,年龄是%d,身高是%.2f'%(username,age,high)#%s是通用的,%d就必须传整数,%f就必须是小数,想保留 ...
- maven win 安装 与 IntelliJ IDEA 配置Maven【2018-11-14最新最有姿势攻略】
[博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] http ...
- Android开发 ---基本UI组件8:九宫格布局、setOnItemClickListener()项被选中监听事件
效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...
- Alpha冲刺6
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10004107.html 作业博客:https://edu.cnblogs.com/campus ...
- springcloud Eureka学习笔记
最近在学习springcloud,抽空记录下学习笔记;主要记录Eureka的实现过程和高可用性的实现 Eureka是一个服务治理框架,它提供了Eureka Server和Eureka Client两个 ...
- nodejs -- 主模块 ,初始化.
一:知识点: 1-1: 模块初始化: 1-2 主模块: 二: 测试 2-1: 代码: 1) 主模块 1: main.js var counter1 = require("./counte ...
- 剖析 GSM 加密机制以及位置更新的过程
你有没有想过打开手机时会发生什么?它是如何以安全的方式与网络进行通信?几乎所有人都知道TCP / IP,并且可能许多人还是专家,但是谈到电信方面,很少有人知道它的内部原理. gsm中的消息结构是什么? ...
- css 长用点
功能 : font-size: 0; 去除图片之间空白空隙
- 剑指Offer 15. 反转链表 (链表)
题目描述 输入一个链表,反转链表后,输出新链表的表头. 题目地址 https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca? ...