App.js

如何存储Node.js部署设置/配置文件?

早过忘川 提交于 2020-01-06 16:38:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我一直在研究一些Node应用程序,我一直在寻找一种存储与部署相关的设置的良好模式。 在Django世界(我来自哪里),常见的做法是使用包含标准设置(时区等)的 settings.py 文件,然后使用 local_settings.py 进行部署特定设置,即。 什么数据库交谈,什么memcache套接字,管理员的电子邮件地址等。 我一直在寻找类似Node的模式。 只是一个配置文件会很好,所以它不必与 app.js 其他所有内容一起使用,但我发现在一个不在源代码管理中的文件中有一种特定于服务器的配置很重要。 相同的应用程序可以在不同的服务器上部署,具有完全不同的设置,并且必须处理合并冲突以及所有这些不是我的乐趣。 那么是否有某种框架/工具,或者每个人都自己一起破解某些东西? #1楼 您还可以查看 node-config ,它根据 $ HOST 和 $ NODE_ENV 变量(有点像RoR)加载配置文件: 文档 。 这对于不同的部署设置( development , test 或 production )非常有用。 #2楼 我的解决方案很简单: 在./config/index.js中加载环境配置 var env = process.env.NODE_ENV || 'development' , cfg =

Kubernetes入门篇

左心房为你撑大大i 提交于 2019-12-17 19:47:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 随着越来越多的公司使用Kubernetes作为它们运行应用的最佳平台,Kubernetes帮助企业标准化了无论是云端部署还是内部部署的应用交付方式;作为研发人员我们还是很有必要去了解其使用方式,了解其内部机制,接下来的一段时间准备通过阅读 <Kubernetes in Action> 来更多的了解Kubernetes。 Docker安装 1.删除旧版本 因为最早之前安装使用过docker,后面一段时间都没有用过,而Docker从17.03开始分为docker-ce(社区版)和docker-ee(企业版),所以先要删除本地的旧版本; # 移除掉旧的版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine # 删除所有旧的数据 sudo rm -rf /var/lib/docker 2.安装依赖 docker依赖devicemapper存储类型,逻辑卷管理lvm2; sudo

Node学习笔记 函数自调用和crud增删改查

坚强是说给别人听的谎言 提交于 2019-12-12 16:52:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 函数自调用 一般情况下,把函数作为参数的目的是为了获取函数内部的异步操作结果 下方代码是一个 同步示例 function add (x + y) { // 函数方法 return x + y } add(10, 20) // 调用函数 下方代码是一个 异步函数 console.log('setTimeout external before') setTimeout(function () { console.log('setTimeout inside before') console.log('setTimeout inside after') }, 0) console.log('setTimeout external after') 由于 setTimeout 是异步函数,所以在运行时浏览器不会等待(哪怕是执行时间为 0 )函数执行,所以最终输出结果为 setTimeout external before setTimeout external after setTimeout inside before setTimeout inside after 之所于得出以上结果,是由于 javascript 是单线程的 获取异步函数内部的操作结果 function add (x, y) { setTimeout

Node学习笔记 结合核心模块url实现评论提交

被刻印的时光 ゝ 提交于 2019-12-09 11:50:34
Node.js 核心方法 url url 模块用于处理与解析 URL 使用方法如下: const url = require('url'); 本实例用到的核心模块方法有 url.parse 、 .pathname 、``.query` url.parse(urlStr[, parseQueryString[, slashesDenoteHost]]) 将一个 URL 字符串转换成对象并返回 urlStr // url字符串 parseQueryString // 为true时将使用查询模块分析查询字符串,默认为false slashesDenoteHost // 默认为 false url.pathname 获取及设置 URL 的路径部分 url.query 获取 URL 参数部分( ? 后部分) 实例(假设页面请求地址为 /url?name=sfatpaper&data=20191129 ): var http = require('http') var url = require('url') http.createServer((req, res) => { var parseObj = url.parse(req.url, true) // 使用 url.parse 方法获取请求 url 的对象 var pathName = parseObj.pathname //

Node学习笔记 结合核心模块url实现评论提交

我的未来我决定 提交于 2019-12-08 17:14:33
Node.js 核心方法 url url 模块用于处理与解析 URL 使用方法如下: const url = require('url'); 本实例用到的核心模块方法有 url.parse 、 .pathname 、``.query` url.parse(urlStr[, parseQueryString[, slashesDenoteHost]]) 将一个 URL 字符串转换成对象并返回 urlStr // url字符串 parseQueryString // 为true时将使用查询模块分析查询字符串,默认为false slashesDenoteHost // 默认为 false url.pathname 获取及设置 URL 的路径部分 url.query 获取 URL 参数部分( ? 后部分) 实例(假设页面请求地址为 /url?name=sfatpaper&data=20191129 ): var http = require('http') var url = require('url') http.createServer((req, res) => { var parseObj = url.parse(req.url, true) // 使用 url.parse 方法获取请求 url 的对象 var pathName = parseObj.pathname //

Docker入门

落花浮王杯 提交于 2019-12-05 00:55:39
1、安装(参考 https://docs.docker.com/install/linux/docker-ce/ubuntu/ ) 1)Uninstall old versions sudo apt-get remove docker docker-engine docker.io containerd runc 2)Install using the repository a.Update the apt package index: sudo apt-get update b.Install packages to allow apt to use a repository over HTTPS: sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common c.Add Docker’s official GPG key: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8

99%的程序都没有考虑的网络异常?使用Fundebug.notify()主动上报

人走茶凉 提交于 2019-12-04 09:08:19
近日看到一篇文章 99%的程序都没有考虑的网络异常 ,开篇提到: > 绝大多数程序只考虑了接口正常工作的场景,而用户在使用我们的产品时遇到的各类异常,全都丢在看似 ok 的 try catch 中。如果没有做好异常的兼容和兜底处理,会极大的影响用户体验,严重的还会带来安全和资损风险。 于是,笔者分析了 GitHub 上的一些开源微信小程序,发现大多数的代码异常处理确实是不够的。 登录接口只考虑成功的情况,没考虑失败的情况 //调用登录接口 wx.login({ success: function() { wx.getUserInfo({ success: function(res) { that.globalData.userInfo = res.userInfo; typeof cb == "function" && cb(that.globalData.userInfo); } }); } }); 网络请求只考虑 then 不考虑 catch util.getData(index_api).then(function(data) { //this.setData({ // //}); console.log(data); }); 考虑了异常情况但是没有做妥善的处理 db.collection("config") .where({}) .get() .then(res => {

NodeJS开发 @Arthur

不问归期 提交于 2019-12-04 02:36:38
一、安装新命令模块,如cnpm,使用国内镜像 npm全称Node Package Manager,是node.js的模块依赖管理工具。由于npm的源在国外,所以国内用户使用起来各种不方便。业内同仁整理出了一部分国内优秀的npm镜像资源,国内用户可以选择使用。 详细地址如下:http://riny.net/2014/cnpm/ 二、安装webpack 使用cnpm install webpack -g安装webpack命令模块,4.x版本的还需cnpm install webpack-cli -g安装webpack-cli命令模块。 三、使用webpack 在程序根目录下,创建webpack.config.json文件,在文件声明需要打包的模块。然后执行webpack,该命令会自动根据webpack.config.json对JS文件进行压缩。 四、实例 示例见服务器上的DtJS-Client。找到app.js右键运行或者整个工程点右键运行npm application。程序写法和以前差别不大! 来源: oschina 链接: https://my.oschina.net/u/3756527/blog/1600553

[翻译]Ext JS 教程-开始使用 ExtJS 4

那年仲夏 提交于 2019-12-01 13:45:33
入门 1. 需求 1.1 网页浏览器 ExtJS 4 支持所有主流的浏览器,从IE 6 到最新的谷歌Chrome。在开发期间,我们建议你使用下面这些浏览器,以获得更好的调试体验。 Ø Google Chrome 10+ Ø Apple Safari 5+ Ø Mozilla Firefox 4+ 带Firebug Web 开发插件 本教程假设你正在使用最新的谷歌 Chrome 浏览器。如果你还没有 Chrome,花点时间去下载它吧,然后去熟悉熟悉 Chrome 的开发者工具。 1.2 Web 服务器 尽管使用 ExtJS 4 并不一定需要一个本地的web 服务器,仍然强烈建议你在开发的时候能有一个,因为 XHR 在大多数浏览器上有针对本地 file:// 的cross origin 限制。如果你还没有本地的web 服务器,建议你下载并安装 Apache HTTP Server。 Ø 了解在 Windows 上面安装 Apache Ø 了解在 Linux 上面安装 Apache Ø Mac OS X 已经内置了apache,你可以在 System Preference > Sharing 下面的 Web Sharing 旁找到 一旦你安装好了 Apache ,你可以通过在浏览器地址栏输入 localhost 验证它是否在运行。你会看到一个表示 Apache HTTP

node+koa2+mysql搭建博客后台

夙愿已清 提交于 2019-11-30 15:42:25
本文将详细讲解使用node+koa2+mysql搭建博客后台的全过程。 开发环境 node 8.3.0及以上 npm 5.3.0及以上 mysql 5.7.21 具体的环境配置可查看我的 上一篇文章 准备工作 npm下载pm2(进程守护),并设置全局变量 创建博客需要的数据库与表 开启mysql并创建数据库test: create database test; 切换到数据库test use tests; ,输入命令创建以下数据表: //系统管理员表 t_user CREATE TABLE `t_user` ( `uid` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL COMMENT '姓名' , `password` varchar(50) NOT NULL COMMENT '密码' , `create_time` datetime NOT NULL COMMENT '注册时间' , `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' , `is_delete` tinyint(1) DEFAULT '0' , PRIMARY KEY (`uid`), UNIQUE