记一次Node项目的优化】的更多相关文章

这两天针对一个Node项目进行了一波代码层面的优化,从响应时间上看,是一次很显著的提升.一个纯粹给客户端提供接口的服务,没有涉及到页面渲染相关. 背景 首先这个项目是一个几年前的项目了,期间一直在新增需求,导致代码逻辑变得也比较复杂,接口响应时长也在跟着上涨.之前有过一次针对服务器环境方面的优化(node版本升级),确实性能提升不少,但是本着“青春在于作死”的理念,这次就从代码层面再进行一次优化. 相关环境 由于是一个几年前的项目,所以使用的是Express+co这样的.因为早年Node.js版…
摘要:经常听到有祖传的代码一说,就是一些项目经过了很长时间的维护,经过了很多人之手,业务逻辑堆叠的越来越多,然后就变成了一个越来越难以维护. 经常听到有祖传的代码一说,就是一些项目经过了很长时间的维护,经过了很多人之手,业务逻辑堆叠的越来越多,然后就变成了一个越来越难以维护. 前几个月,同事刚走,留下一个node支撑的Master/Slaver结构的分布的任务调度系统; 从运行部署角度看,现状是多个发布版本,而且版本依赖的node存在差异,而且部署需要手动进行一些依赖文件的拷贝; 从代码结构层面…
记XX银行保全项目性能问题分析优化 数据库问题也许是大部分性能问题的关注点,但是JAVA应用与数据库交互的关节,JDBC 就像是我们人体的上半身跟下半身的腰椎,支持上半身,协调下半身运动的重要支撑点.假如腰椎出问题了,在强壮的上半身或者下半身也是只能说身体瘫痪着. 就如数据库设计很优良或者JAVA应该设计开发代码写得非常优化,但是在JAVA应用代码与数据库之间的桥梁没设计衔接好,彼此之间的数据交互沟通不顺畅,那性能问题还是非常严重的.如资源型的内存泄漏.系统频繁抛出各种异常等现在导致影响系统性能…
点击上方"前端自习课"关注,学习起来~ 前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM:但 Vue 项目中仍然存在项目首屏优化.Webpack 编译配置优化等问题,所以我们仍然需要去关注 Vue 项目性能方面的优化,使项目具有更高效的性能.更好的用户体验.本文是作者通过实际项目的优化实践进行总结而来,希望读者读完本文,有一定的启发思考,从而对自己的项目进行优化…
项目服务端编程语言node,前端js,数据库mongodb, 开发工具用webstorm. 使用express应用生成器,生成项目雏形. 安装应用生成器工具,命令是npm install express-generator -g 生成项目myApp,命令是express -e myApp(-e命令用来指明使用ejs模板) 连接MongoDB 增加db.js文件 增加驱动运行代码,如下 server.listen(port,function () { db.getConnect()}); 创建数据…
1.创建Node项目 [Jade模板] > express nodeJade express创建项目若不显示指定模板,默认使用Jade,以下写法都可以: express -jade nodeJade express -view=jade nodeJade express --view=jade nodeJade (官方推荐写法) [EJS模板] > express -e nodeEjs EJS模板需要显示指定,以下写法都可以: express --ejs nodeEjs express --v…
仿百度壁纸客户端(六)--完结篇之Gallery画廊实现壁纸预览已经项目细节优化 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Fragment 仿百度壁纸客户端(二)--主页自定义ViewPager广告定时轮播图 仿百度壁纸客户端(三)--首页单向,双向事件冲突处理,壁纸列表的实现 仿百度壁纸客户端(四)--自定义上拉加载实现精选壁纸墙 仿百度壁纸客户端(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 仿百度壁纸客…
前言 每次项目代码更新后都要重新部署,如果只有一台服务器还好. 但是如果是分布式系统,动不动就很多台服务器,所以代码的自动部署就显得十分重要了. 这里用几篇文章来记录一下如何使用Jenkins,Docker,github来搭建一个自动化部署的node项目. 思路 使用git进行版本控制,当项目更新时就触发 Jenkins的构建任务 Jenkins 从 git 拉取最新的代码 为了避免多个节点的运行环境差异,所以需要使用 Docker 来将我们的 node 项目打包为镜像 将镜像通过脚本部署到所有…
记一次SSM项目小结(一) ssm框架 环境配置 服务器配置 解决方法  拦截器重定向到localhost nginx和tomcat中session失效 mybatis的xml文件不生效 数据库用户创建.权限.及远程连接 pagehelper配置报错 百度情感倾向分析接口使用 拦截器重定向的问题,拦截器重定向到到了localhost 当把代码上传到服务器后,登录拦截器进行重定向,然后重定向到了localhost 解决办法:将重定向为绝对网址 这样的话,拦截器进行重定向就不会重定向到localho…
以阿里云服务器,CentOS系统为例 上一节已经提到怎么安装nodejs,以下是以vue项目为例 步骤: (1)首先安装vue脚手架@vue/cli, 官网参考 vue-cli3.x [root@lunix ~]# npm i @vue/cli -g vue-cli2.x [root@lunix ~]# npm install -g @vue/cli-init 默认文件会安装之前下载的node目录node/node_module, 执行命令会安装到node/bin 比如这里将node下载至/us…
node项目配置成nginx启动 1.新建ant.conf upstream antNodeJs{ server 127.0.0.1:8000; keepalive 64; } server { listen 80; #listen [::]:80 default_server ipv6only=on; server_name jiqing.ant.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_heade…
一,如何基于 Express 搭建一个node项目 什么是Express 借用官方的介绍,Express是一个基于Node.js平台的极简.灵活的web应用开发框架,它提供了一系列强大的特性,帮助你创建各种 Web和移动设备应用. 如何安装 请先确保你的机器上安装了Node.js,然后通过npm方式来安装,非常方便. 安装步骤 1. 安装 Express 在cmd命令行下,输入  npm install express -g  命令,回车  全局安装 express : 2. 安装Express…
配置域名 在阿里云找到主域名 进入主域名之后,右上角添加解析,添加子域名, 记录类型选择cname,主机记录填写子域名的名称,记录值为主域名,至此阿里云已经配置好了. 检查nginx安装 首先检查服务器是否安装nginx: find / -name 'nginx.conf'  -ls 或者 ps -ef|grep nginx 安装nginx 如果没安装,则先安装 sudo apt-get update sudo apt-get install nginx 在根目录,进入服务器nginx目录下,…
在弄docker部署node项目的时候遇到了连接mongdb的问题,记录一下问题解决办法 一.Docker 安装 MongoDB 1.查找Docker Hub上的mongo镜像 [root@VM_49_93_centos mongo]# docker search mongo NAME DESCRIPTION STARS OFFICIAL AUTOMATED mongo MongoDB document databases provide high av... [OK] mongo-expres…
一.环境部署 1.下载安装包: wget https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.xz 2.解压并进入目录: xz -d node-v9.9.0-linux-x64.tar.xz tar -xvf node-v9.9.0-linux-x64.tar cd node-v9.9.0-linux-x64 3.建立软连接: ln -s /opt/nodejs/node-v9.9.0-linux-x64/bin/node /usr/…
node项目使用strongloop进行部署相关教程 安装strongloop 下载安装node 解压到路径完成安装 使用软链方式配置环境变量 添加cnpm的淘宝镜像源 安装node-gyp的模块依赖到全局中 cnpm install -g node-gyp 安装c++的编译环境 sudo yum install gcc gcc-c++ 安装strongloop cnpm install -g strongloop 添加软链接,让系统级别能够调用slc的命令 ln -s /root/node/b…
TypeScript在node项目中的实践 TypeScript可以理解为是JavaScript的一个超集,也就是说涵盖了所有JavaScript的功能,并在之上有着自己独特的语法.最近的一个新项目开始了TS的踩坑之旅,现分享一些可以借鉴的套路给大家. 为什么选择TS 作为巨硬公司出品的一个静态强类型编译型语言,该语言已经出现了几年的时间了,相信在社区的维护下,已经是一门很稳定的语言.我们知道,JavaScript是一门动态弱类型解释型脚本语言,动态带来了很多的便利,我们可以在代码运行中随意的修…
仿百度壁纸client(六)--完结篇之Gallery画廊实现壁纸预览已经项目细节优化 百度壁纸系列 仿百度壁纸client(一)--主框架搭建,自己定义Tab + ViewPager + Fragment 仿百度壁纸client(二)--主页自己定义ViewPager广告定时轮播图 仿百度壁纸client(三)--首页单向,双向事件冲突处理,壁纸列表的实现 仿百度壁纸client(四)--自己定义上拉载入实现精选壁纸墙 仿百度壁纸client(五)--实现搜索动画GestureDetector…
根据上篇文章<Linux下Jenkins与GitHub自动构建NetCore与部署>,我们知道了Jenkins的强大功能,自动构建,部署了一个NetCore的Web,让开发人员专注于开发,不用管理线上,或测试服务器的部署.那现在,互联网公司很多采用了前后端分离的开发模式,既然服务端可以用Jenkins,那么前端是否也可以吗?那我们就尝试下,试着去构建一个Vue的基本项目. 1. 构建环境 2. Jenkins自动构建 3. 项目部署 4. 总结一下 1. 构建环境 对于整个linux环境是什么…
后端 node 项目工具集 editor vs code webstorm 质量检查 eslint prettier 命令行相关 better-run-npm npm-run-all nodemon forman shell/shx npx 包管理 npm lerna yarn np 相关工具 git husky 生产环境部署 pm2…
这个项目https://github.com/wechaty/we...以前都是用人家弄好的手脚架搞得es6,搞了2天搞起了es6还报错,错误信息在下面,然后我想请教大神:1我到底应该怎么弄才能在windows上跑起来,2还有如果要学Docker,有没有什么好的学习docker的中文教程?3还有里面都是.ts结尾的是什么鬼?要学会如何用这个应该去学什么东西?在哪里学比较好? E:\weixin\wechaty>npm run dev weixinbot@1.0.0 dev E:\weixin\w…
学习node的时候也写了一些demo.但是只是限于本地测试,从来没有发布.今天尝试发布项目. 需要准备的东西 node 项目:为了突出重点,说明主要问题.我只是拿express 写了很简单的demo. 服务器:阿里云或者其他的服务器 lnmp 点击查看简介 pm2 pm2 是一个带有负载均衡功能的Node应用的进程管理器. 发布步骤 1. 项目准备 共计两个文件 index.js package.json /** * index.js * 启动: node index.js * app 跨域访问…
从开通博客到现在也没写什么东西,最近几天一直在研究vue+webpack+element-ui项目打包速度优化,想把这几天的成果记录下来,可能对前端牛人来说我这技术比较菜,但还是希望给有需要的朋友提供一下方便. 一开始项目部署到线上后第一次访问首页的时间是7.8秒的样子,页面加载太慢了自己都接受不了何况用户. 主要是从一下几步来优化的: 1.vue路由的加载方式 import Home from '@/components/Index' 改为 const Index = resolve => r…
前言:最近因为项目原因,需要在IIS下部署node项目,在此之前,曾经部署过类似的项目,因此在这次部署还算比较顺利,只是在其中遇到了几个比较坑的问题,所以这次使用博客记录下来,如有园友遇到过类似问题,希望对你有所帮助. 一.前期准备 1.node.js(下载地址:https://nodejs.org/en/),根据自己的需要安装对应版本 2.iisnode(下载地址:https://github.com/tjanczuk/iisnode) 3.IIS的URL Rewrite模块(下载地址:htt…
上一篇文章中准备工作已经完成的差不多了 这一篇主要讲解 Jenkins 上面的相关配置 为了让代码部署到所有的子节点上 所以我们首先需要在 Jenkins 中添加我们希望代码部署到的节点 配置节点 首先进入你的 Jenkins 页面 然后选中系统管理 点击进入系统管理后选择节点管理 然后点击新建节点 在输入框中为你的节点取一个名字 并选中固定节点选项 点击确定进入下一步 然后按照下图配置子节点 然后添加凭据用于 Jenkins 控制子节点 添加完凭据之后就可以选择刚刚添加的凭据并保存子节点 然后…
你也许在猜专业的Node开发如何创建一个新项目. 有Npm在 ,这会非常简单. 虽然你可以创建一个JS文件,并执行:node file.js,但我建议你使用npm init来先创建一个node项目,这会是非常好的习惯. cmd下执行: npm init 即可创建一个Node项目.这时会产生一个package.json文件.这是node的清单文件, package.json里面,会包含该项目的基本信息,以及项目所需要的三方模块信息. 这个文件是很有用的,当将来此项目要在别的机器上使用时,依赖它可以…
1.安装宝塔linux之后,按需配置,我的是nginx,不是apq的. 2.下载pm2管理器 3.添加站点,将node项目从localhost打包到到站点,node_modules这个无需打包,这个依赖项需要重新安装. 4.在站点目录下打开终端,安装node依赖项. 大致用到以下命令: npm init -y npm install xxx,xxx,xxx,xxx -d (xxx为项目所需的依赖包,例如koa,koa-static......) 配置完毕便可在站点下启动node server.j…
一.背景   目前公司的电子合同采用表单设计器+合同业务配合实现,做了半年多后终于上线,但是下边员工普遍反映卡顿,甚至卡死,爆栈.尤其是新增和修改合同页面,因为这部分数据量大,逻辑复杂,很容易崩溃,所以决定进行性能优化. 二.业务场景介绍   先来了解一下我们是怎么实现:   1. 因为我们公司合同变换频繁,条款之间还有逻辑,所以做了个基础服务(说白了就是组件库),为合同提供模板   2. 表单设计器作为基础服务,打包成了组件库,嵌入到合同项目,包括合同生成组件(拖拽生成合同模板)和合同预览组件…
CentOS 7 部署 node 项目 安装 node 环境 方法一:使用 wget 的方式下载压缩包进行解压 淘宝node镜像地址,进入地址选择自己想要安装的版本 wget https://npm.taobao.org/mirrors/node/v16.1.0/node-v16.1.0-linux-x64.tar.gz tar -xzf node-v16.1.0-linux-x64.tar.gz 对 node 进行软链接,便于全局使用 node,我解压到的目录是 /data/ ln -s /d…
生成一个node项目1.创建文件夹2.文件夹中右键->在此处打开命令窗口->文件夹中打开dos3.执行:npm init //一路回车,最后y4.安装插件: C:\www\nodejs\hello>npm install async --save-dev…