一个目录下多个nodejs项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个目录下多个nodejs项目相关的知识,希望对你有一定的参考价值。
目前似乎最常见的线上部署nodejs项目的有forever,pm2这两种,本文恩主要给大家介绍了关于利用pm2部署多个node.js项目的配置教程,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。前言
相信大家应该都知道,一般在实际项目部署中,我们服务器在启动的时候需要自动启动node服务。以前是通过liunx自带的命令启动。但是随着后台微服务越来越多。每次发布新程序。修改脚本太麻烦了。于是换成PM2来做。下面话不多说了,来一起看看详细的实现过程吧。
配置方法如下:
1.首先安装pm2npm install -g pm2
2.生成配置文件pm2 ecosystem
生成完成会有一个ecosystem.config.js的文件,
3.修改配置文件
编辑ecosystem.config.js 参考技术A 一个目录下多个nodejs项目,这种情况下也是非常正常的一个目录,下多个mod s项目的话也是比较符合他的一个行情和状况的。 参考技术B 一个目录下多个nodejs项目,nodejs 就是运行在服务端的 nodejs。nodejs是一个开放源代码的javascript运行时环境,可在浏览器外部执行nodejs代码。它基于Chrome的V8 JavaScript引擎构建,并考虑了可扩展性。它非常适合轻量级、快速的实时web应用程序。那么,Node.js吸引越来越多公司的原因是什么呢?它可以创建协作工具、聊天工具、社交媒体应用程序等。
Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具
工具来源:
Nodejs需要手动加载路由文件,如果一个个添加,项目逐渐扩大,比较麻烦。
尤其在项目route目录下,增加模块文件夹的时候,引入路由更是麻烦。
因此写了一个Nodejs动态加载路由,Nodejs遍历目录,Nodejs路由工具,取名为route.js。
支持无限级别目录结构,自动递归引用。有任何更好的建议,欢迎随时留意交流。
使用方法:
1、文件:app.js同级目录增加route.js文件,复制下面贴出源代码;
2、引入:app.js中引入:var route = require(‘./route‘);
3、调用:在app变量初始化之后,在app.js中使用route.init(app,[可选参数,路由目录,默认为./routes/]),即可动态加载路由文件了;
工具源代码:
/** * 动态遍历目录加载路由工具 * author: bling兴哥 */ var fs = require("fs"); // 动态路由 var loadRoute = { path : ‘./routes/‘, app : null, // 遍历目录 listDir : function(dir){ var fileList = fs.readdirSync(dir,‘utf-8‘); for(var i=0;i<fileList.length;i++) { var stat = fs.lstatSync(dir + fileList[i]); // 是目录,需要继续 if (stat.isDirectory()) { this.listDir(dir + fileList[i] + ‘/‘); } else { this.loadRoute(dir + fileList[i]); } } }, // 加载路由 loadRoute : function(routeFile){ console.log(routeFile); var route = require(routeFile.substring(0,routeFile.lastIndexOf(‘.‘))); // 在路由文件中定义了一个basePath变量,设置路由路径前缀 if(route.basePath){ this.app.use(route.basePath,route); }else{ this.app.use(route); } }, // 初始化入口 init : function(app,path){ if(!app){ console.error("系统主参数App未设置"); return false; } this.app = app; this.path = path?path:this.path; this.listDir(this.path); } }; module.exports = loadRoute;
以上是关于一个目录下多个nodejs项目的主要内容,如果未能解决你的问题,请参考以下文章
react nodejs项目中的多个package.json文件