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 ...
随机推荐
- css隐藏滚动条依旧可以滚动
在做企业页面的时候,大部分页面都应该是活的,不应该写死,因为要从后台拿数据进行填充.而后台的数据是不确定的,有时候会让我们的容器撑得很大.这时候我们需要隐藏掉滚动条达到美观或者其他布局效果,隐藏掉单个 ...
- PFM 图片格式
PFM 图片格式 参考: https://linux.die.net/man/5/pfm 1. 描述 本文档描述了Netpbm转换器pamtopfm(1)和pfmtopam(1)所理解的PFM图 ...
- SEH X86
( windows 提供的异常处理机制实际上只是一个简单的框架,一般情况下开发人员都不会直接用到.我们通常所用的异常处理(比如 C++ 的 throw.try.catch)都是编译器在系统提供的异常处 ...
- hadoop fsck详解
我们知道fsck是用来检测hdfs上文件.block信息的,但是fsck输出的结果我们是否能看明白呢? 下面我们来看一个fsck输出的结果 hadoop fsck / ############## ...
- Centos7.5安装Docker
Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装 ...
- VIM入门
目录 一.vim介绍 二.vim颜色显示和移动光标 三.vim一般模式下移动光标 四.vim一般模式下复制.剪切和粘贴 五.进入编辑模式 六.vim命令模式 七.vim实践 一.vim介绍 vi是最重 ...
- the implemention of redblack tree
public class redbalcktree { private class Node{ private int val; private int key; boolean color; //b ...
- Page 对象详解
Page 对象 由于网页编译后所创建的类由Page派生而来,因此网页可以直接使用Page对象的属性.方法和事件. Page对象的常用属性 1.IsPostBack(bool类型) 获取一个值,该值指示 ...
- 【转载】 TensorflowOnSpark:1)Standalone集群初体验
原文地址: https://blog.csdn.net/jiangpeng59/article/details/72867368 作者:PJ-Javis 来源:CSDN --------------- ...
- PTA——32位前导零
PTA #include <stdio.h> int main(){ //无符号整型才能表达32位二进制数对应的十进制数 unsigned int decimalNum; unsigned ...