• 分类:【Nodejs
  • 浏览【98】
  • 评论【0】
  • 更新【2021-1-14 16:18:05】

nest框架官方文档中使用的是本地文件配置,也就是@nestjs/config包。本地配置文件的好处是简单,但是对于一些更新较快的项目,难免会增加配置数据,曾经吃过不少配置文件的亏,在发布的时候很容易因为缺少配置文件直接把服务发挂了,或者直接在服务器上修改配置很容易修改错误导致服务发布失败。 集中的配置中心可以解决上面问题,但前提是搭建配置中心。因公司已经有了配置中心,所以直接使用即可。 但是会出现这样的问题:从配置中心获取数据库连接信息,再去连接会连接失败,因为在连接的时候还没有获取到配置信息。 先看代码再解释。 // main.ts import { NestFactory } from

阅读全文
  • 分类:【Nodejs
  • 浏览【520】
  • 评论【0】
  • 更新【2020-4-02 16:42:11】

pm2支持远程部署服务,创建文件ecosystem.json,内容形式如: { // Applications part "apps" : [{ "name" : "API", "script" : "app.js", "env": { "COMMON_VARIABLE": "true" }, // Environment variables injected when starting with --env production // http://pm2.keymetrics.io/docs/usage

阅读全文
  • 分类:【Nodejs
  • 浏览【540】
  • 评论【0】
  • 更新【2019-11-18 14:17:47】

前面写过一篇linux下安装nodejs,不过这种方式安装有弊端,首先就是安装过程复杂漫长,容易出错,且不易升级。这次展示的是简单易操作的方式。 wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh nvm install 10 nvm use 10 好了,只需3行命令即可,其原理是先安装nodejs版本管理工具nvm,通过nvm来安装和管理nodejs,这样就一举两得,既安装了nodejs,还可以方便升级,至于nvm的使用方法大家使用nvm -h即可查看,不再细说。 另外,如果对nodejs有深度使用的

阅读全文
  • 分类:【Nodejs
  • 浏览【2131】
  • 评论【0】
  • 更新【2019-4-30 16:31:18】

main.ts import { NestFactory } from '@nestjs/core'; import { ExpressAdapter, NestExpressApplication, } from '@nestjs/platform-express'; import { AppModule } from './app.module'; import nunjucks = require('nunjucks'); import { join } from 'path'; async function bootstrap() { const app =

阅读全文
  • 分类:【Nodejs
  • 浏览【1193】
  • 评论【0】
  • 更新【2018-9-04 14:57:38】

无法重新声明块范围变量“onerror” 解决办法:打开tsconfig.json中的"lib": ["es2015", "es2016", "es2017"]

阅读全文
  • 分类:【Nodejs
  • 浏览【8085】
  • 评论【0】
  • 更新【2018-3-02 11:25:51】

nodejs中经常使用到环境变量,最常见的如:process.env.NODE_ENV,可以配置环境变量,可以临时设置 设置方式一: linux:export NODE_ENV=development&& node app.js win:set NODE_ENV=development&& node app.js 一般是作临时变量在系统启动时设置,不影响其他系统,也可同时运行开发环境和生产环境,只需要根据process.env.NODE_ENV来运行不同逻辑即可, 设置方式二: 而设置环境变量在pm2中可以轻松实现 pm2 start pm2.json --e

阅读全文
  • 分类:【Nodejs
  • 浏览【3904】
  • 评论【0】
  • 更新【2018-1-25 17:49:36】

pm2介绍 pm2是nodejs进程管理工具,现在基本是node生产服务器的标准选择,可以帮助我们实现node多进程服务,开启的多个实例自动实现负载均衡。 最重要的是保证node单进程不会因为错误退出,作为守护进程保证nodejs服务不宕机。 总体来说就是有性能监控、自动重启、负载均衡的作用。 pm2-logrotate介绍 pm2本身是可以输出日志文件的,默认的文件路径: error log path │ /home/username/.pm2/logs/app-error-0.log out log path │ /home/username/.pm2/logs/app-o

阅读全文
  • 分类:【Nodejs
  • 浏览【4724】
  • 评论【0】
  • 更新【2018-1-17 22:21:51】

pm2的fork模式和cluster模式的区别 fork模式 pm2默认启动的是fork模式,是以单核单进程运行的,在fork模式下可以直接运行coffee-script,PHP,python。 参考:http://pm2.keymetrics.io/docs/tutorials/using-transpilers-with-pm2 运行非js语言必须设置运行模式为fork_mode cluster模式 cluster模式可以根据CPU数量进行实例扩展,可以开启多进程而不需要修改代码。可提高程序性能和可靠性。类似于分布式系统,只不过是在单台机器上开启多实例,而pm2自带负载均衡。 ** 使用

阅读全文
  • 分类:【Nodejs
  • 浏览【1925】
  • 评论【0】
  • 更新【2017-11-11 18:48:56】

Assistance.belongTo(User)会报以下错误: ALTER TABLE `assistance` ADD CONSTRAINT `assistance_user_id_foreign_idx` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE; Unhandled rejection SequelizeDatabaseError: Can't write; duplicate key in table '#sql-454_d' at Quer

阅读全文
  • 分类:【Nodejs
  • 浏览【1287】
  • 评论【0】
  • 更新【2017-10-28 23:28:40】

从图片中的代码可以看出 let userRecord = await item.getUser();获取到的是Bluebird<UserInstance | null>类型,然后在下面获取对象属性的时候报错,错误信息是: [ts] Object is possibly 'null'. let userRecord: UserInstance | null 说对象可能是null,所以无法获取其中的属性。遇到这种情况请设置typescript的编译选项,tsconfig.json文件中的 "strictNullChecks": true,

阅读全文