程序员成长指北

Results 39 issues of 程序员成长指北

(sequelize)bulkCreate函数中的updateOnDuplicate参数怎么使用? ## 前言: Sequelize中提供的增删改查相关的函数都能转成原生的sql语句。本篇文章介绍一个不是很常见但是有时候批量插入很方便的函数——bulkCreate。 ## bulkCreate讲解 #### 官方文档理解 **bulkCreate() - 创建多条记录** ``` bulkCreate(records, [options]) -> Promise. ``` 批量创建并保存多个实例。 处理成功后,会在回调函数中返回一个包含多个实例的数组。 参数 名称 | 类型 | 说明 ---|--- |--- records | Array...

#### 数据库表中sale列的值为23456.789 1. format函数 说明:format(x,d)是mysql自带的格式化小数函数,format()函数会对小数部分进行四舍五入操作,整数部分从右向左每三位一个逗号进行格式化输出 format函数结果: ``` 23,456.79 ``` 2. truncate函数 说明:truncate(x,d)是mysql自带的函数,truncate()函数会将小数部分d位以后的值直接舍去 truncate函数结果: ``` 23456.78 ``` 3. round函数(常用) 说明:round(x,d)是mysql自带的函数,format()函数会对小数部分进行四舍五入操作,但是不会出现format函数中的带逗号格式 round函数数结果: ``` 23456.79 ``` 4. convert函数(常用) 说明:MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。简单的说就是类型转换。 CONVERT(xxx,类型),但是类型是有限制的,下面几种类型 - 二进制,同带binary前缀的效果...

## 前言: 最近写的一个接口需要用到子查询,并且子查询的结果并不是可以在另外一个查询语句中直接当作in的选项,没办法区sequelize官网上看了一下如何直接使用原生语句 ## sequelize文档内容翻译 看一段官网中代码例子,一一说明 ``` //1 sequelize.query('SELECT 1', { logging: console.log, plain: false, raw: false, type: Sequelize.QueryTypes.SELECT }) //2 sequelize .query('SELECT * FROM projects', { raw: true })...

### 报错: 在使用sequelize创建model后,使用model进行findAll查询的时候报错: > Sequelize Unknown column '*.createdAt' in 'field list'? ### 报错原因: 在sequelize中启用了时间戳(即sequelize中创建的model开启了时间戳),但是在数据库中的实际表定义不包含时间戳列。 当你做model.findAll时,会将model中的每一进行别名查询(也包括model中开启的时间戳),从而创建下面例子查询,这面就包含了数据库中实际没有的时间戳列(createdAt,updatedAt): ``` SELECT `users`.*, `userDetails`.`userId` AS `userDetails.userId`,`userDetails`.`firstName` AS `userDetails.firstName`, `userDetails`.`id` AS `userDetails.id`, `userDetails`.`createdAt` AS `userDetails.createdAt`, `userDetails`.`updatedAt`...

## 环境变量 讲config之前,先说一下环境变量这个事。 Linux系统中查看所有环境变量 ```linux env ``` node中常用到的环境变量是NODE_ENV,查看是否存在 ```linux echo $NODE_ENV ``` Linux系统中添加环境变量 ```linux env ``` 某些时候需要删除环境变量 ```linux unset NODE_ENV ``` 环境变量追加值 ```linux export PATH=$PATH:/home/download:/usr/local/ ``` ## config模块包使用 安装 ```linux...

最近写的一个用户数据统计相关接口,需要用到按照每天进行分组统计。 ### 直接看语句 ``` SELECT DATE_FORMAT( create_time, "%Y-%m-%d" ) ,sum(user_id) FROM orders WHERE order_state=2 GROUP BY DATE_FORMAT( create_time, "%Y-%m-%d" ) ; ``` ### DATE_FORMAT函数说明 - 语法 ``` DATE_FORMAT(date,format) //上面代码中使用的是 DATE_FORMAT(...

## 提出问题 ### 问题1: 看一段for循环的代码,大家先想一下执行结果是什么? ``` var arr = [2,4,6,8,10]; var arrLength = arr.length; for (var i = 0; i < arrLength; i++) { setTimeout(function() { console.log(i); console.log(arr[i]); }, 2000);...

## 前言 在node.js后端开发过程中,数组这种数据类型(Object类型)再常见不过,本文主要介绍数组的一些常见函数,以及在实战开发过程中能更好的操作数组的**lodash包**。 ## 函数介绍 ### 向数组末尾添加值 **push** 说明:向数组的末尾添加一个或多个元素,并返回新的长度 代码: ``` js let array=[11,22]; let arrayChange=array.push("333"); console.log(arrayChange) //返回的结果就是数组改变后的长度:3 console.log(arrayChange.length)//undefined ``` ### 向数组头部添加值 **unshift** 说明:将参数添加到原数组开头,并返回数组的长度 代码: ```js let array=[11,22]; let arrayChange=array.unshift("333");...

## 前言: 最近有一个需求,从一组试题中随机获取5道题用于用户复习,获取到的5道试题应该每次是随机的而且不重复的。 ## 代码实现: #### 实现方式1 大多数人的写法,从数组中取数据,放入新的数组,取完一个数据从原始数组中删除数据,在放入新数组的时候判断是否已出现过。 ``` function getTenNum(n) { var reslut = []; var testArray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,1,2]; for (var i = 0; i < n; ++i) {...

## 前言 有些内容虽然不用,但是不代表面试不考。这里为大家送上5道常见的手写面试题,希望你们在面试中能遇到某一道也好,这样这篇文章就没有白写。 ### 模仿实现new创建对象 ``` /** * 模仿 new * @return {} */ function createNew() { let obj = {}; let context = [].shift.call(arguments); // 获取构造函数 obj.__proto__ = context.prototype;...