一、代码部分

* 启用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服务器设置与优化的更多相关文章

  1. mysql笔记05 优化服务器设置

    优化服务器设置 1. MySQL有大量可以修改的参数--但不应该随便去修改.通常只需要把基本的项配置正确(大部分情况下只有很少一些参数时真正重要的),应将更多时间花在schema的优化.索引,以及查询 ...

  2. websocket服务器推送 (node+express+vue+socket)

    简介: 此项目需要懂一点node.express 功能: 1.前端用户登录,查看服务端推送的消息,用户只能在一个地方登录,也就是单点登录 2.服务端首先登录,上传需要推送的信息文本,后台读取文本后,存 ...

  3. 零基础实现node+express个性化聊天室

    本篇文章使用node+express+jquery写一个个性化聊天室,一起来get一下~(源码地址见文章末尾) 效果图 项目结构 实现功能 登录检测 系统自动提示用户状态(进入/离开) 显示在线用户 ...

  4. node+express+mongodb初体验

    从去年11月份到现在,一直想去学习nodejs,在这段时间体验了gulp.grunt.yeomen,fis,但是对于nodejs深入的去学习,去开发项目总是断断续续. 今天花了一天的时间,去了解整理整 ...

  5. Node+Express的跨域访问控制问题:Access-Control-Allow-Origin

    问题一:项目A通过Ajax访问项目B的接口,获取json数据,项目B采用Node+Express技术栈.项目A可能遇到跨域访问控制问题. 问题二:vue-resource 能够跨域,一般使用jsonp ...

  6. Express服务器开发

    作者 | Jeskson 来源 | 达达前端小酒馆 Express服务器开发 创建Express应用程序,Express路由,pug视图模板的使用 Express简介: 让我们来创建Express应用 ...

  7. react + node + express + ant + mongodb 的简洁兼时尚的博客网站

    前言 此项目是用于构建博客网站的,由三部分组成,包含前台展示.管理后台和后端. 此项目是基于 react + node + express + ant + mongodb 的,项目已经开源,项目地址在 ...

  8. 【原】小玩node+express爬虫-2

    上周写了一个node+experss的爬虫小入门.今天继续来学习一下,写一个爬虫2.0版本. 这次我们不再爬博客园了,咋玩点新的,爬爬电影天堂.因为每个周末都会在电影天堂下载一部电影来看看. talk ...

  9. Node+Express+node-mysql 实战于演习 全套mysql(增删改查)

    最近这段时间研究Node感觉不错,自己做了一个增删改查,虽然有些简陋,但是思想是想通的,其实所有项目都是增删改查,有助于初学者快速掌握Node 首先 本实例展示的是基于Node+Express+nod ...

随机推荐

  1. JS的防抖和节流

    数个月之前,在一次前端的性能优化中,接触到了JS中防抖和节流,一开始还不明白他们的应用在哪里,可后来才知道,这是前端中最基础的性能优化,在绑定 scroll .resize 这类事件时,当它发生时,它 ...

  2. caffe drawnet.py 用Python画网络框架

    在caffe中可以使用draw_net.py轻松地绘制卷积神经网络(CNN,Convolutional Neural Networks)的架构图.这个工具对于我们理解.学习甚至查错都有很大的帮助. 1 ...

  3. 50个常用的Linux命令(三)基础实例

    ls ls -als -l == llls -Aldrwxrwxrwx.  2 root   root       6 Dec 21 20:38 Videos-rwxrwxrwx   1 root   ...

  4. 2.3 利用FTP服务器下载和上传文件

    二.利用FTP服务器的下载文件 from ftplib import FTP from os.path import exists def getfile(file,site,dir,user=(), ...

  5. vue 创建项目

    先安装node.js环境 #先安装npm 阿里镜像 (之后cnpm 下载组件快速) npm install -g cnpm --registry=https://registry.npm.taobao ...

  6. admin 后台

    https://segmentfault.com/a/1190000015835976#articleHeader3https://github.com/PanJiaChen/vue-element- ...

  7. BiLstm原理

    Lstm这里就不说了,直接说Bilstm. 前向的LSTM与后向的LSTM结合成BiLSTM.比如,我们对“我爱中国”这句话进行编码,模型如图所示. 前向的依次输入“我”,“爱”,“中国”得到三个向量 ...

  8. java中的Iterator和ListIterator的区别

    (一)iterator迭代器 Collection的iterator方法返回一个实现了一个Iterator接口的对象 Iterator接口中包含三个方法: 1)E next() 2)boolean h ...

  9. Windows+Linux双系统所导致的时间不一致问题的原因及解决方案

    参考自:https://www.cnblogs.com/x_wukong/p/4401499.html 前几天在自己的windows10另外还装了一个Ubuntu,使用后发现windows时间一直不对 ...

  10. junit断言和junit注释assert

    JUnit - 使用断言 断言 所有的断言都包含在 Assert 类中 public class Assert extends java.lang.Object 这个类提供了很多有用的断言方法来编写测 ...