开发测试服务器配置信息,node服务端中台实现及开发测试生产环境配置

本人node服务端新人一枚,网上找了不少资料,看了很多别人的配置信息,感觉都不是很合适,看的多了自己也明白配置的具体思路跟实现方式了,以下为我的实现方式。通过package.json里面的scripts配置命令行信息,然后在命令行信息里面添加参数,在具体执行文件里面判断参数引入对应路径的文件。

首先我的目录结构是这样的

c49175251fef

实现目标是通过不同的命令行命令执行对应环境下的配置文件,首先在config目录下创建三个文件夹

dev_env.js

c49175251fef

stage_env.js

c49175251fef

prod_env.js

c49175251fef

分别对应开发测试生产环境要访问的接口等信息,具体需要什么变量可以自己配置。然后package.json文件需要配置scripts。

package.json中scripts部分

c49175251fef

接下来是具体执行文件,比如我的router.js接收参数部分,使用process.argv接收命令行参数

c49175251fef

这样就可以了,命令行执行npm run dev 执行的就是dev_env.js的配置信息,npm run stage 执行的就是stage_env.js

本来以为这样就万事大吉了,但是实际跑起来还有一些问题,隔一段时间后就无法访问了,查询后才知道是node进程挂了,然后搜索一番发现需要进程守护,nohup试验过后还是会莫名中断进程,最后选用了pm2,这里有一点需要说明,pm2安装需要在服务器上执行安装命令并且配置软连接,在本地node环境执行npm install 安装各种包只限于js中引用使用,比如express等,就可以直接通过git上传的方式在测试环境正式环境部署后就可以直接使用,但不推荐这么做因为可以上传就意味着别人也可以上传,很容易出问题,除非只有你有权限。

安装成功后,把package.json改成如下代码就可以了

c49175251fef

记录下pm2常用命令:

pm2 start app.js   启动app.js文件

pm2 stop app.js  关闭app.js文件

pm2 restart app.js 重启app.js文件

pm2 list 查看运行状态

pm2 describe app  查看app.js运行具体信息

中台实现功能方面,整体实现思路是使用arttemplate模板在服务端读取views下的文件,然后通过axios发起请求获取后端接口数据,把页面跟数据集成后再返回给客户端。具体模板配置及使用就不具体介绍了。说说我遇到的项目中的问题吧。

因为接口数据我在服务端请求过了,所以客户端不会再发起这个请求,但是一些json类型的数据客户端还要用到,因此要把接口数据传输给客户端,这部分内容通过两种方案来实施了,简单数据类型比如字符串或者数字的通过在html上添加属性,复杂json类型的通过cookie传递服务端:res.cookie('desp',JSON.stringify(data.entity.desp))

客户端:JSON.parse(decodeURIComponent(config.getCookie('desp')))

注意服务端存cookie需要转成json字符串,客户端接收需要用decodeURIComponent处理后再转成json对象,如果报502错误,大概率是你的cookie存储超过了4kb,这种情况下服务端是不会报错的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql数字前面有0_Mysql中前边有0的数据,0会被舍去的问题

最近由于项目的需求,需要频繁地拉取不同数据库中的数据,拉取数据的过程中,各种问题,十分悲催,真所谓,一个疏忽,你就要被推倒重来...在经历了无数次被推倒又站起来,然后又被推倒的艰苦…

狸窝音频剪辑软件_「附下载链接」常用的5款视频格式转换软件,收藏起来吧...

日常生活中,大家可能会自己制作一些记录生活的小视频,或者作为爱好上传到视频平台,就会用到很多种的视频格式,比如MP4、MKV、WMV、FLV、MOV、DV等等。因为有的视频网站需要特殊格式的视频才能上传,或者因为视频体积太大…

mysql 触发器 运算符_mysql三元运算,上下连表,视图,触发器,存储过程,事务等不常用方法...

1 MySql中的三元运算符有两种方法:1、case when 条件 then (条件为true时执行) else(条件为false时执行) end;/*end不可少*/2、select *,if(expr1,expr2,expr3) from 表名;实例:SELECT if(isnull(sum(c.MONEY)),0,sum(c.MONEY)) AS m1 FROM Table2 上下连…

求字典key的和python_python怎么将字典key相同的value值, 合并

python怎么将字典key相同的value值, 以逗号隔开,整为一行数据 源数据: test_dict1 {text: 50.00€ Rabatt fr Bestellungen ber 10.00€, strong_off: 50.00€, html_text: 50.00€ Rabatt fr Bestellungen ber 10.00€} test_dict2 {text:…

简单的mysql左链接_简单谈谈mysql左连接内连接

前言最近忙着开发x省冷链追溯系统,天天干到晚上十一点多才回到家,周末也加班,没啥时间写博客,闲下来再好好写写业务: sql语句统计出入库数据。问题:只统计了X端入库单。原因: 没有发现X端的数据…

c语言 空格_C语言100题集合-ex003

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。喜欢的同学记得点赞收藏哦~1 题目函数:fun() 功能:统计一行字符串单词的个数,作为函数值返回描述:一行字符串在主函数中输入,规定…

go 默认http版本_【每日一库】超赞的 Go 语言 INI 文件操作

点击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习 Go 语言如果你使用 INI 作为系统的配置文件,那么一定会使用这个库吧。没错,它就是号称地表 最强大、最方便 和 最流行 的 Go 语言 INI 文件操作库:https:…

python程序设计第一章答案_Python《学习手册:第一章-习题》

人们选择Python的六大主要原因是什么? 软件质量:Python注重可读性、一致性和软件质量。Python代码的设计致力于可读性,因此具备了比传统脚本语言更优秀的可重用性和可维护性。 Python的一致性保证了其代码易于理解。 Python支持软件开发的高级…

redis数据丢失_有效避免数据丢失!Redis持久化方案选择详解

为什么需要持久化呢?通常情况下redis的数据全部存储在内存中,数据库一旦故障发生重启数据会全部丢失,即使是在redis cluster或者redis sentinel模式下主从同步数据的恢复仍然需要一段时间。持久化功能在于能够有效地避免因进程退出造成的数据丢失问题&am…

做python开发要用多大的内存_Python 在分配内存需要考虑的问题

由此能看出可变对象在扩充时的秘密:超额分配机制:申请新内存时并不是按需分配的,而是多分配一些,因此当再添加少量元素时,不需要马上去申请新内存 非均匀分配机制:三类对象申请新内存的频率是不同的&#x…

mysql审计 社区版有吗_mysql 5.6 社区版上审计功能,不扯皮

官网https://mariadb.com/kb/en/mariadb/about-the-mariadb-audit-plugin/一、环境说明MySQL 5.6.25 社区版Mariadb 10.0.25 社区版mysql 企业版有审计功能需要收费,社区版被阉割的不行不行了,和古时候的太监没啥区别了,比较重要的功能特性都…

python用outlook自动发邮件_Python 调用outlook发送邮件(转 )

单账号: import win32com.client as win32 def send_mail(): outlook win32.Dispatch(Outlook.Application) mail_item outlook.CreateItem(0) # 0: olMailItem mail_item.Recipients.Add(testtest.com) mail_item.Subject Mail Test mail_item.BodyFormat 2 # …

win10子系统ubuntu图形界面_win10系统中安装ubuntu子系统及图形界面

作为全球最流行且最有影响力的Linux开源系统之一,Ubuntu自发布以来在应用体验方面:有较大幅度的提升,即使对比Windows、MacoS等操作系统,最新版本的Ubuntu也不逊色。下面教大家在win10系统中安装ubuntu子系统及图形界面。第一步&a…

为什么python打开pygame秒关闭后在运行_当我运行Python程序时,pygame窗口打开片刻,然后退出 - python...

我是一个刚开始尝试通过在线课程使用python和pygame制作游戏的程序员。但是,当我运行以下代码时,pygame窗口将打开一秒钟,然后关闭。 import pygame pygame.init() screen pygame.display.set_mode((900,700)) finished False while finish…

es 时间字段聚合_ES之五:ElasticSearch聚合

1、单值聚合Sum求和,dsl参考如下:{"size": 0,"aggs": {"return_balance": {"sum": {"field": "balance"}}}}返回balance之和,其中size0 表示不需要返回参与查询的文档。Min求最小值{"…

div字体居中_div和span的使用

这节我们来制作以下效果我们先把四个段落的文字都写出来,分别包含在p标签里现在看到的效果如下我们来一点一点给它加入样式首先,来使文字水平居中并且加背景色但是这样显示的效果有一些问题,直接加入文字背景会显示背景顶着两头,导…

java将mysql数据写入到txt_java 追加写入数据到txt

方法一try {BufferedWriter out new BufferedWriter(new FileWriter(fileName));out.write("aString1\n");out.close();out new BufferedWriter(new FileWriter(fileName,true));out.write("aString2");out.close();BufferedReader in new BufferedRead…

dubbo协议_Dubbo协议解析与OPPO自研ESA RPC框架实践

本文来自OPPO互联网基础技术团队,转载请注名作者。同时欢迎关注我们的公众号:OPPO_tech,与你分享OPPO前沿互联网技术及活动。1. 背景Dubbo是一款高性能、轻量级的开源Java RPC框架,诞生于2012年,2015年停止研发&#x…

fastjson反序列化过滤字段属性_原创干货 | 从RMI入门到fastjson反序列化RCE

关注我,让我成为你的专属小太阳吧RMI入门什么是RMIRMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运…

python pyquery.get()_Python爬虫之PyQuery使用(六)

Python爬虫之PyQuery使用PyQuery简介pyquery能够通过选择器精确定位 DOM 树中的目标并进行操作。pyquery相当于jQuery的python实现,可以用于解析HTML网页等。它的语法与jQuery几乎完全相同,对于使用过jQuery的人来说很熟悉,也很好上手。初始化…