1.详解Spring Boot如何实现每日给女朋友微信推送早安问候语和天气预报浪漫教程
2.使用Sequelize快速构建PostgreSQL数据的天行CRUD操作详解
详解Spring Boot如何实现每日给女朋友微信推送早安问候语和天气预报浪漫教程
功能点
实现每日自动给女朋友微信推送早安问候语和天气预报。
技术栈点
使用Spring Boot作为核心框架,源码搭配第三方API接口。网天
源码开放
源码提供在Gitee和GitHub平台上供参考与使用。行源
注册微信测试账号,记百编辑推送模板
确保账号功能可用,度百ask指数源码定制个性化早安问候语与天气预报模板。天行
使用spring boot 做后台开发,源码并且与第三方对接
集成百度地图开放平台API获取天气数据,网天使用天行数据TianAPI API获取更多天气信息。行源
Spring Boot后台开发
构建后台服务,记百实现定时任务,度百自动化处理早安问候与天气预报推送。天行
部署
发布CSDN平台相应博文,源码提供部署指南,网天方便开发者学习与应用。
使用Sequelize快速构建PostgreSQL数据的CRUD操作详解
之前写过一个专栏《布道API》来介绍API的REST风格及推荐实践,今天开始来构建一个管理系统的API服务,首先需要处理的逆战爆头 源码就是数据存储,本文将结合实际开发总结在NodeJS下使用Sequelize快速构建PostgreSQL数据的CRUD操作。项目源代码:github.com/QuintionTang/pretender-service
SequelizeSequelize是一个基于promise的Node.jsORM工具,它具有强大的事务支持、关联关系、预读和延迟加载、读取复制等功能,支持的数据库包括:PostgreSQL、MySQL、MariaDB、粉多多软件源码SQLite和MSSQL。
Sequelize类是引用sequlize模块后获取一个顶级对象,通过它来创建sequlize实例,也可以通过该对象来获取模内其它对象的引用,如:Utils工具类、Transaction事务类等。创建实例后,可以通过实例来创建或定义Model(模型)、执行查询、访问php 出现源码同步数据库结构等操作。
官方网站:docs.sequelizejs.com/
添加和配置在安装模块之前,首先安装开发工具Sequelize-CLI
sudonpminstall-gsequelize-cli接下来在项目目录下安装数据存储相关的模块。
npminstallsequelize--savenpminstallpgpg-hstore--save现在在项目根目录下创建文件.sequelizerc,代码如下:
constpath=require('path');module.exports={ "config":path.resolve('./config','db.json'),"models-path":path.resolve('./models'),'seeders-path':path.resolve('./seeders'),'migrations-path':path.resolve('./migrations')};该文件将告诉Sequelize初始化,以生成config、models到特定目录。接下来,输入命令初始化Sequelize。找同生缘源码
sequelizeinit该命令将创建config/db.json,models/index.js,migrations和seeders目录和文件。命令执行完毕之后打开并编辑config/db.json来配置数据库连接信息。
{ "development":{ "username":"dbusername","password":"dbpassword","database":"crayon-admin","host":".0.0.1","dialect":"postgres","options":{ "operatorsAliases":false},"logging":false},"test":{ "username":"dbusername","password":"dbpassword","database":"crayon-admin","host":".0.0.1","dialect":"postgres"},"production":{ "username":"dbusername","password":"dbpassword","database":"crayon-admin","host":".0.0.1","dialect":"postgres"}}目录说明:
migrations:所有迁移文件,通过sequelizedb:migrate创建相应数据表
seeders:种子文件,即初始化需要插入到数据库中的数据,运行sequelizedb:seed:all
创建Models和Migrations使用CLI工具Sequelize-CLI创建administrators表
sequelizemodel:create--nameadministrators--attributesid:integer,add_time:integer,last_login:integer,username:string,email:string,login_ip:string执行后会生成两个文件
/src/migrations/-create-administrators.js:创建数据表脚本,用于数据库初始化。
"usestrict";module.exports={ up:async(queryInterface,Sequelize)=>{ awaitqueryInterface.createTable("administrators",{ id:{ allowNull:false,autoIncrement:true,primaryKey:true,type:Sequelize.INTEGER,},add_time:{ type:Sequelize.INTEGER,},last_login:{ type:Sequelize.INTEGER,},username:{ type:Sequelize.STRING,},password:{ type:Sequelize.STRING,},email:{ type:Sequelize.STRING,},login_ip:{ type:Sequelize.STRING,},});},down:async(queryInterface,Sequelize)=>{ awaitqueryInterface.dropTable("administrators");},};/src/models/administrators.js:生成的model文件
"usestrict";const{ Model}=require("sequelize");module.exports=(sequelize,DataTypes)=>{ classadministratorsextendsModel{ }administrators.init({ id:{ type:DataTypes.INTEGER,autoIncrement:true,primaryKey:true,},add_time:DataTypes.INTEGER,last_login:DataTypes.INTEGER,username:DataTypes.STRING,password:DataTypes.STRING,email:DataTypes.STRING,login_ip:DataTypes.STRING,},{ sequelize,indexes:[{ unique:true,fields:["id"],},],freezeTableName:true,timestamps:false,//是否自动添加时间戳createAt,updateAtmodelName:"administrators",});returnadministrators;};现在执行命令:
sequelizedb:migrate执行成功后将在连接的数据库中创建数据表:administrators。
创建seedseed用于初始化插入数据,如管理员,在系统运行前需要创建一个默认账号,这些默认账号信息就写在seed文件中。
创建seed命令如下:
sequelizeseed:create--nameadministrator执行成功后将会在seeders文件夹中创建文件,修改代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save0现在将seed中的数据插入到数据库中,执行一下命令:
npminstallsequelize--savenpminstallpgpg-hstore--save1创建Services创建文件夹services,文件夹中代码封装与model交互的方法,包括所有CRUD(创建,读取,更新和删除)操作,创建administrators.js,实现的逻辑为获取账号信息、更新账号信息,代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save2创建Controllers上面创建的services文件用于控制器,在控制器文件夹中创建一个名为administrators.js的文件,代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save3创建Routers在文件夹routers中创建文件administrators.js文件,代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save4创建入口现在来为服务创建接口,项目根目录下创建文件app.js,代码如下:
npminstallsequelize--savenpminstallpgpg-hstore--save5现在执行命令nodeapp.js启动服务,将看到终端效果如下:
至此,完成一个基本的API登录服务,还有待完善,后续在迭代中完善。文章涉及的代码在GitHub上。
作者:天行无忌