前言 在面向对象语言中,我们很容易理解对象及对象的实例,
但是sequelize ORM框架中我们通常会说成模型和实例.
模型可以理解为对一个表结构的抽象定义,好比工厂的一条流水线,
实例可以理解为表结构中一个具体的数据结构,好比流水线生产出来的一个商品.
在sequelize 类中有一些api是针对实例操作 (可以理解成内存中的改变)
实例持久化以后,数据才写入我们物理存储单元中 (比如具体的数据库)
新建实例并持久化 定义模型 const Task = sequelize.define('task', {
title: Sequelize.STRING,
rating: { type
2020-03-27
4801
javascript
查看更多
查询操作符 Sequelize提供了一整套查询操作符,下面分别列出来看下
比较操作符 const Op = Sequelize.Op
[Op.and]: {a: 5} // AND (a = 5)
[Op.or]: [{a: 5}, {a: 6}] // (a = 5 OR a = 6)
[Op.gt]: 6, // > 6
[Op.gte]: 6, // >= 6
[Op.lt]: 10, // < 10
[Op.lte]: 10, //
2020-03-26
7917
javascript
查看更多
前言 最近把代码进行升级,原来旧版本的Sequelize 也一下升级的V5.0版本,
为了学习使用方便,统一把 Sequelize 5.0 更新,移除,替换,升级的内容标记一下.
对node的支持 Sequelize v5 将仅支持 Node 6 以及更高版本
安全的运算符 在 v4 中,就开始收到弃用警告 String based operators are now deprecated (基于字符串的运算符现在已弃用).
同时也介绍了运算符的概念.这些运算符是一些防止散列注入攻击的符号.
在V5 版本中,运算符默认启用.
你仍然可以通过在 operatorsAliases 中传递一个运算
2020-03-26
4801
javascript
查看更多
前言 在使用sequelize ORM框架时一定要先创建模型对象.
对象模型对应的就是数据库中表,字段及字段类型等的定义.
我们一般的做法是先在nodejs中将对象创建出来,然后调用Sequelize的同步方法,将数据库自动创建出来.
这样就避免了既要写代码建表,又要手工创建数据库中的表的操作.
只需要单独考虑代码中的对象类型等属性就好了.
如果数据库中已经建好了表,并且不能删除,这个时候就不能自动创建了,因为创建的时候会删除掉旧的数据
定义模型
名称类型说明
modelNameString模型名,在sequelize.models属性中会使用这个名称;
如果没有在options中指定
2020-02-28
5675
javascript
查看更多
前言 Node.js 社区中,sequelize 应该是最好用的 ORM 框架,它支持多种数据库,包括 PostgreSQL ,MySQL ,SQLite 和 MSSQL.
安装 npm install --save sequelize
在你的项目中使用了哪种数据源,那么对应的去安装此数据源的驱动程序:
$ npm install --save pg pg-hstore # PostgreSQL
$ npm install --save mysql2 # MySQL
$ npm install --save mariadb # Mariadb (mysql的孪生兄弟)
$ n
2020-02-24
6447
javascript
查看更多
levelup
是一个由谷歌构建的简单 key-value 数据库.
它在 Google Chrome 和许多其他产品中使用,使用 fast Snappy算法,可以将任意字节数组作为键和值.
leveldown
它提供了一个纯 C++ 绑定到 LevelDB.
在浏览器或者 memdown 中,有许多可选存储( 如 level.js ),用于内存存储中的. 它们通常支持键和值的字符串和缓冲区.
对于更丰富的数据类型集,可以用 encoding-down 包装存储.
level
它可以看做是包的一个集合,捆绑了 levelup , leveldown 和 encoding-down.
它的
2019-12-12
3546
javascript
查看更多
webpack打包报错 $ npm run build:prod
> jiajialink-admin@3.2.1 build:prod /Users/zhangzhi/code/jjzn/admin
> vue-cli-service build
⠧ Building for production...
WARNING Compiled with 3 warnings 8:22:16 PM
warning
asset size limit: The follo
2019-11-19
17351
javascript
查看更多
说明 发现一些朋友在群里询问如何线上发布vue项目.
从而暴露出来很多有意思的问题.
所以这篇博文简单介绍一下vue项目线上发布的情况.
本地环境 mac os
node 10.16
vue 2.6
vue-cli 4.0
线上环境 centOS6
node 10.16
nginx
vue是最近很火的前端框架,
所以它依赖的是浏览器,及我们可以从浏览器定位到你服务器nginx,然后nginx把指定的静态资源转发出来,最后我们在浏览器渲染看到
不管你的服务器是iis,apache还是nginx
只要http可以定位到服务器的静态资源即可.
很多人会有问号?
那为什么我在开发的时候用node命令
2019-10-28
3705
javascript
查看更多
es6 中的class ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的。
function Point(x, y) {
this.x = x;
this.y = y;
}
Point.prototype.toString = function() {
return '(' + this.x + ',' + this.y + ')';
}
等同于
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toStri
2019-10-09
1403
javascript
查看更多
basicShare 推荐一款极简的分享插件
之前用过百度分享,后来博客切换https服务后,
百度分享插件加载报错,
再加上目前主流的社会化分享目的地也就是 微信,微博,
或许是80后的我真的out了,
这个插件基本满足我的需要
极致简洁 UI效果
截图展示效果有点大....
看看实际效果:
分享
站点没有下载icon,所以前面的分享icon变成了方框□
css .basicShareBtn {
cursor: pointer;
background-color: #dff0d8;
border-color: #d6e9c6;
color: green;
font-size: 1
2019-09-05
2524
javascript
查看更多
关于axios axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js.
主要功能
从浏览器中创建 XMLHttpRequests
从 node.js 创建 http 请求
支持 Promise API
拦截请求和响应
转换请求数据和响应数据
取消请求
自动转换 JSON 数据
客户端支持防御 XSRF
浏览器支持
使用 浏览器端 直接引用:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
使用 bower:
bower ins
2019-08-27
2372
javascript
查看更多
前言 vscode优势强劲,让各种技术栈同学爱不释手,不仅仅是IDE足够优秀,而且他的生态也非常丰富,各种各样的插件让你武装到牙齿.
今天推荐的2款插件本人都在用.
koroFileHeader
文件头部加注释
光标处添加函数注释
文件头部加注释 文件头部注释在你创建文件自动添加,
如果是老文件,保存时自动添加更新记录.
/*
* @Author: zhangzhi
* @Date: 2019-07-11 13:40:28
* @LastEditTime: 07-11 17:15:57
* @LastEditors: zhangzhi
* @Description: In User Set
2019-07-11
3677
javascript
查看更多
前言 javascript因为他的不完美,
导致了字符串可以有好几种转化为数字的方法,
但是可用的方法越多,留下的坑也就比较多.
parseInt 几乎所有浏览器都能解析处理此方法.
console.log(parseInt('001一介布衣');
//有些老旧浏览器会返回 0
//现代浏览器会返回 1
此方法优点:
** 处理速度最快**
Number Number 几乎所有浏览器都支持解析,
但是它针对参数是否有引号会做出不同的解析.
console.log(Number('0028'));
输出:28
console.log(Number(023));
输出:19
当 Numbe
2019-06-20
2411
javascript
查看更多
ES6 下export 和 export default 的区别
export与export default均可用于导出常量、函数、文件、模块等
你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
在一个文件或模块中,export、import可以有多个,export default仅有一个
通过export方式导出,在导入时要加{ },export default则不需要
ES6 下 export 导出方式
//a.js
export const str = "blablabla~";
export function
2019-05-28
1538
javascript
查看更多
前言 备份数据库是运维同志的日常工作之一,
但是对于中小公司,或者服务器托管在云服务商的公司来说,基本没有专业的运维工程师.
所以一部分公司中,开发工程师就要分担一些运维的事情.
我们本着能让计算机做的事情绝对不动手原则,
今天就和大家分享一下 centOS下定时自动备份mongodb数据库,并且清理历史备份记录.
centOS安装crontab 如果你的系统已经安装,请直接跳过此步骤.
[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs
说明 vixie-cron软件包是cron的主程
2019-05-19
2731
javascript
查看更多
javascript中的 object javascript中的object是由多个名/值对组成的无序的集合;
object 中每个属性对应任意类型的值;
定义对象可以使用构造函数或字面量的形式.
var obj = new Object;
obj.name = "一介布衣";
obj.show = function(){}; //添加行为
除了以上添加属性的方式,还可以使用Object.defineProperty定义新属性或修改原有的属性
Object.defineProperty Object.defineProperty(obj, prop, descriptor)
参数说明:
2019-04-18
1325
javascript
查看更多
如何引用react 单页面直接使用react.js文件很简单,只需要像引入普通js文件一样,通过script标签引入即可
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.1
2019-01-08
1737
javascript
查看更多
JavaScript 中的跨域问题
http://yijiebuyi.com/A.js
http://yijiebuyi.com/B.js
上面情况在同一域名下,不同资源文件 [允许跨域]
http://yijiebuyi.com/blog/A.js
http://yijiebuyi.com/jobs/B.js
上面情况在同一域名下,不同资源目录下的文件 [允许跨域]
http://yijiebuyi.com/A.js
http://yijiebuyi.com:1234/B.js
上面情况在同一域名下,不同端口 [不允许跨域]
http://yijiebuyi.co
2016-09-08
15106
javascript
查看更多
在开发过程中,团队代码风格统一,会让我妈避免不必要的错误和低级 Bug、控制代码质量,这样我们最好会预定一套编码规范.
检验JavaScript编码规范的工具有哪些?
jslint
jshint
ESLint
下面简单看下这3个检验工具之间的差别:
jslint
jslint 的作者是 Douglas Crockford(《JavaScript: The Good Parts》的作者)。
Douglas Crockford 制订了一套 JavaScript 编码规则,
JSLint 通过检查和分析 JavaScript 代码,
将任何违反规则的代码警告给开发者,
且无法通过配置关闭一
2016-02-05
7598
javascript
查看更多
sails安装
npm install -g sails
sails创建新项目
sails new test
sails目录结构
test api
controllers(控制器相关,业务逻辑)
models(模块开发)
policies(用于路由过滤)
responses(定制所需的响应:如404 res.notFound())
services(定制一些常用的工具类–全局的)
assets(静态资源文件)
images
js
styles
templates
favicon.ico
config(整个
2016-01-31
7072
javascript
查看更多
关于 ES6规范及新特性
对象字面量申明增强
ES6 之前,申明对象字面量方式其实就是直接定义一个json对象.存在的仅仅是对象的属性和值.
ES6 之后,对象字面量被扩展支持直接设置原型,
简洁属性赋值和方法,
超类调用,
这也让对象字面量和类声明的关系更密切,并让基于对象的设计更便利
ES6之前:
var obj = {
__proto__: theProtoObj,
// 下面的写法不会设置内部原型
'__proto__': theProtoObj,
// 方法
toString() {
// 调用父对象的方法
return "d "
2015-12-07
5972
javascript
查看更多
ES6是对 javascript 语言的一次重大更新,是自从2009年ES5标准化后的第一次重大更新
主要的JavaScript引擎正在逐步实现这些特性,点击这里查看浏览器的兼容情况
这次更新涉及到的新特性还比较多,我们分几个部分来简单介绍 ES6 中模块导入
类似下面的语法:
import fs from 'fs';
import path from 'path';
这里的 import是在编译时决定的( 即在脚本开始执行之前 )
事实上,各个模块之间的依赖关系图所涉及的所有imports和exports都是在执行之前已经决定
如果我们的代码中需要按需加载的需求,即在运行时才进行模
2015-12-03
13214
javascript
查看更多
JSX 可以看作JavaScript的拓展,看起来有点像XML。
使用React,可以进行JSX语法到JavaScript的转换。
为什么使用JSX
使用React,不一定非要使用JSX语法,可以使用原生的JS进行开发。但是React作者强烈建议我们使用JSX,因为JSX在定义类似HTML这种树形结构时,十分的简单明了。简明的代码结构更利于开发和维护。
XML有着开闭标签,在构建复杂的树形结构时,比函数调用和对象字面量更易读。看个直接的对比:
//使用JSX
React.render(
<div>
<div>
2015-11-21
9946
javascript
查看更多
#为什么用webpack
如果我们 前端 javascript 能像 node.js 一样 require 去引用一个依赖包,那么前端的世界就不会像现在这么乱
现在为什么乱?
假设:
a.js 依赖 b.js
b.js 依赖 c.js
c.js 依赖 d.js
如果在我们前端去引用这些依赖的时候,往往是这样的:
<script src='a.js'></script>
<script src='b.js'></script>
<script src='c.js'></script>
<scri
2015-11-12
14640
javascript
查看更多
概述
CommonJS是服务器端模块的规范,Node.js采用了这个规范。
根据CommonJS规范,一个单独的文件就是一个模块。
加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。下面就是一个简单的模块文件example.js。
console.log("evaluating example.js");
var invisible = function () {
console.log("invisible");
}
exports.message = "hi";
exports.say = function () {
c
2015-11-12
9419
javascript
查看更多
javascript 在浏览器中的加载是如何的?
如何你的 script 上没有任何 异步,阻塞 等标注:
浏览器会异步加载 javascript 文件,但是会按照引用文件中的书写顺序从上到下执行解析 javascript
Defer属性标记
defer是html4.0中定义的,该属性使得浏览器能延迟脚本的执行,等文档完成解析完成后会按照他们在文档出现顺序再去下载解析。
也就是说defer属性的 script 就类似于将 script 放在body中的加载 效果一致.
但是defer属性在各个浏览器中支持程度有点不同,就是说,有的浏览器不完全支持.
Async属性标注
as
2015-11-10
11255
javascript
查看更多
一般来说, React 组件是一个组件类由 extends Component 创建,并且提供一个 render 方法以及其他可选的生命周期函数、组件相关的事件或方法来定义。
一个简单的例子:
import React, { Component } from 'react';
import { render } from 'react-dom';
class LikeButton extends Component {
getInitialState() {
return { liked: false };
}
handleClick(e) {
this.
2015-11-09
4848
javascript
查看更多
关于 React Native 学习 系列之如何定义css 样式
样式
React Native 不实现 CSS,而是依赖于 JavaScript 来为你的应用程序设置样式。这是一个有争议的决定,你可以阅读那些幻灯片,了解背后的基本原理。
声明样式
在 React Native 中声明样式的方法如下:
var styles = StyleSheet.create({
base: {
width: 38,
height: 38,
},
background: {
backgroundColor: '#222222',
},
active:
2015-11-07
10510
javascript
查看更多
在 React 下,我们需要考虑的,是每个组件在任意一个状态下应该怎么渲染。
(状态就是数据)
React 会把这些组件装配成页面。
然后当数据更新后, React 又把新数据传给组件,于是又根据新数据重新渲染
React 把重新渲染的结果和之前渲染的结果进行比对,找出需要更新的部分,进行更新。
我们只需要正确的更新数据/状态,不必再在渲染时考虑数据发生了什么变化(例如是增加了一条记录还是减少了一条记录?增加到什么位置?不需要考虑这些也就不需要考虑我们在进行 DOM 操作时插入到哪里等问题)。
我们只需要指定好规则(即给出任意一种状态,这个组件应该怎么渲染),并正确的更新状态,这些
2015-11-06
10655
javascript
查看更多
利用 JSX 编写 DOM 结构,可以用原生的 HTML 标签,也可以直接像普通标签一样引用 React 组件。这两者约定通过大小写来区分,小写的字符串是 HTML 标签,大写开头的变量是 React 组件。
使用 HTML 标签: import React from 'react';
import { render } from 'react-dom';
var myDivElement = <div className="foo" />;
render(myDivElement, document.getElementById('mountNode'));
HTML 里
2015-11-05
8253
javascript
查看更多