基于阿里的Node全栈之路(七)[源码分享]——打造高效的开发流程

本文涉及的产品
对象存储 OSS,20GB 3个月
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介: 上一篇忘记放github地址了,这份代码可以说是我打造阿里高自动化运维的结晶,基本上,如果是在阿里云上部署项目的Node全栈工程师,应该会有很多借鉴的地方,如果有什么不懂的,也欢迎来找我。

上一次,在社区里面有童鞋说,如果系列文章能够有代码作为基石,会更好理解,也对新手会更加的友好,所以这里整理了下我的框架,然后趁着上个周末不出去玩,搭建了一个仿cnode的一个小论坛,并持续的更新下去。

github地址

我的阿里云栖博客

本代码搭建的博客

交流QQ群:428812779

文章列表

基于阿里的Node全栈之路(一)部署Docker

基于阿里的Node全栈之路(二)阿里负载均衡的HTTPS优化方案

基于阿里的Node全栈之路(三)利用阿里云OSS实现前后端分离

基于阿里的Node全栈之路(四)前后端分离进阶-自动上传前端代码到OSS

基于阿里的Node全栈之路(五)前后端分离进阶-接口篇

基于阿里的Node全栈之路(六)专有网络VPC的应用

项目部署

项目分为两部分,前端[www]和后端[api],同时部署也是分开的。
依赖:

Node > 7
Mongodb
Redis

api

后端框架是eggjs,数据库采用mongodb + redis,参数配置可参照下方代码.

/**
 * 参数全部从Docker环境变量中获取
 * @argument mongodb_host mongodb的主机地址
 * @argument redis_host redis的主机地址
 * @argument redis_password redis的访问密码
 * @argument redis_db redis的第几号数据库
 */
const mongodb_host = `mongodb://${process.env.mongodb_host || 'localhost'}/blog`;
const redis_host = process.env.redis_host || 'localhost';
const redis_password = process.env.redis_password || '';
const redis_db = process.env.redis_db || 0;
module.exports = {
  logger: {
    dir: './logs',
  },
  security: {
    csrf: false,
  },
  redis: {
    client: {
      port: 6379,
      host: redis_host,
      password: redis_password,
      db: redis_db,
    },
  },
  mongoose: {
    url: mongodb_host,
    options: {},
  },
};

参数可以自行修改,配好后,构建环境并启动:

npm install & npm run debug
# or
yarn install & yarn run debug

到这里,后端api就启动成功了,可以直接访问 http://localhost:7001/blog/v1/session ,检查是否启动成功。

app

后端框架是vue,采用了vue-cli,模板采用的是webpack,eslint采用airbnb的.

const merge = require('webpack-merge');
const prodEnv = require('./prod.env');
/**
 * 参数从Docker环境变量中获取
 * @argument blog_host 后端api地址
 */
const host = process.env.blog_host ? `"${process.env.blog_host}"` : '"https://api.mumuimp.com/blog/v1"';

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  host,
});

构建环境并启动:

npm install & npm run dev
# or
yarn install & yarn run dev

其实这些参数是可以在系统的环境变量中设置的。
Windows: 参照java环境变量设置,在环境变量中添加blog_host环境变量.(建议在用户变量中添加)
Linux & Mac: 直接在.bashrc或者.bash_profile添加环境变量.


_1_

当然!你也可以直接改了它!;)

项目发布

Docker部署api

具体参照基于阿里的Node全栈之路(一)部署Docker

阿里云OSS部署web

创建index.js,具体代码可以参考index-example.js,并填写好你自己的参数:

const store = oss({
  accessKeyId: '< your accessKeyId>',
  accessKeySecret: '< your accessKeySecret>',
  bucket: '< your bucket>',
  region: '< your region>',
});

最后,

yarn run publish

友情推荐:

一个好用的接口管理平台,支持本地部署,开源MIT,去哪儿前端大神团队开发。

亲情推荐:

egg-tablestore,阿里云的tablestore数据库在egg上的插件,为啥亲情推荐呢?因为是我写的, wo lianpi hou.

License

MIT

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1天前
|
SQL JavaScript API
❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)
【4月更文挑战第4天】❤Nodejs 第四章(操作本地数据库实现删除-源码地址已开放)在Node.js中实现删除本地数据库记录的操作。首先尝试通过SQL删除ID为8的用户,然后编写`app.delete`路由处理程序,从请求体获取ID并执行删除。。最终成功删除用户并展示了数据库的更新结果。下一节将优化增删改查功能。
9 1
|
2月前
|
JavaScript 前端开发 关系型数据库
分享66个NodeJs系统源码总有一个是你想要的
分享66个NodeJs系统源码总有一个是你想要的
34 1
|
2月前
|
数据采集 JavaScript 前端开发
分享58个NodeJs爬虫源码总有一个是你想要的
分享58个NodeJs爬虫源码总有一个是你想要的
36 4
|
8月前
通过patch-package创建补丁修改node_modules依赖下的源码
通过patch-package创建补丁修改node_modules依赖下的源码
108 0
|
4月前
|
JavaScript 数据可视化 前端开发
【Node.js】低代码平台源码
【Node.js】低代码平台源码
44 0
|
4月前
|
JavaScript 数据可视化 前端开发
【Node.js】低代码管理系统源码:只需点击鼠标,搭建属于你的企业应用
【Node.js】低代码管理系统源码:只需点击鼠标,搭建属于你的企业应用
59 1
|
9月前
|
JavaScript 数据可视化 前端开发
Node.js低代码管理系统源码:只需点击鼠标,搭建属于你的企业应用
低代码管理系统是一种通过可视化界面和简化的开发工具,使非专业开发人员能够快速构建和管理应用程序的系统。它提供了一套预先定义的组件和模块,使用户可以通过拖放操作来设计应用程序的界面和逻辑。低代码管理系统还提供了自动化的工作流程、数据管理和集成功能,使用户能够快速创建和部署应用程序,而无需编写大量的代码。
76 0
|
JavaScript NoSQL 应用服务中间件
【老卫拆书】009期:Vue+Node肩挑全栈!《Node.js+Express+MongoDB+Vue.js全栈开发实战》开箱
【老卫拆书】009期:Vue+Node肩挑全栈!《Node.js+Express+MongoDB+Vue.js全栈开发实战》开箱
172 0
|
机器学习/深度学习 编解码 算法
重磅好文透彻理解,异构图上 Node 分类理论与DGL源码实战
重磅好文透彻理解,异构图上 Node 分类理论与DGL源码实战
重磅好文透彻理解,异构图上 Node 分类理论与DGL源码实战
|
SQL 前端开发 关系型数据库
【全栈之路】保姆级node+vue从0到1极速搭建(二)
【全栈之路】保姆级node+vue从0到1极速搭建
【全栈之路】保姆级node+vue从0到1极速搭建(二)