Oraclenodejs登录模板

做这些模板希望今后能压缩重复工作的光阴,让劳作越是飞快吧
接下去要详细介绍模板制作中选用的技艺和蒙受的难点
在统计中加强自个儿的实力
我的github


接纳技术

主体逻辑:express4
签到验证:passport
数据库连接和询问:kenx

  • bookshelf
    数据库:mysql
    工具:webstorm11

工具调教

这一次最大的题材出在那边,工具不会用浪费了累累时刻,所以把调教方法记录下来,以备后患

nodejs环境搭建

在File->Settings->Languages &
Frameworks->Javascripts->Libiraries中,必要广大包
左侧有一个download,可以下载须求的库,不用说,都安上

Libiraries

Download

那规范,webstorm能少报很多错

辅助,快捷键ALT+ENTER能协理缓解难点,很好用

最后,有一些温馨的词汇在字典中尚无,webstorm有拼写检查,字典中一直不的单词会在该词下打破浪线,看的令人很不爽。提议不用关掉拼写检查,右键它,有进入字典的选项,那样更方便些。


passport

passport依旧给本身带来了很大的麻烦的
一句话,如故驾驭了最好
一个科学的普通话网站:passport.js学习笔记
地点讲的专门周详,充裕排忧解难了


knex

knex是一个合龙了Postgres, MySQL, 玛丽亚DB,SQLite3, and
Oracle那一个数据库连接查询的模块
尤其好用
下面不难描述一下mysql相关的利用办法

安装
npm install knex

连年数据库

var knex = require('knex')({ 
    client: 'mysql', //数据库类型
    connection: { 
        host : '127.0.0.1', 
        user : 'your_database_user', //数据库用户名
        password : 'your_database_password', //用户名对应的密码
        database : 'myapp_test' //要使用的数据库名
}});

可以参与连接池

var knex = require('knex')({ 
    client: 'mysql', //数据库类型
    connection: { 
        host : '127.0.0.1', 
        user : 'your_database_user', //数据库用户名
        password : 'your_database_password', //用户名对应的密码
        database : 'myapp_test' //要使用的数据库名
    }, 
    pool: { 
        min: 0, 
        max: 7 
}});

可以投入断线重连的时日

var knex = require('knex')({ 
    client: 'pg', 
    connection: {...}, 
    pool: {...}, 
    acquireConnectionTimeout: 10000 
});
查询

询问卓殊有利,不用再写sql语句了,上面来看一下啊
SELECT

knex.select('title', 'author', 'year').from('books')
//等同于
select `title`, `author`, `year` from `books`

as

knex.avg('sum_column1').from(function() { 
    this.sum('column1 as sum_column1').from('t1').groupBy('column1').as('t1')
}).as('ignored_alias')
//等同于
select avg(`sum_column1`) from (select sum(`column1`) as `sum_column1` from `t1` group by `column1`) as `t1`

column

knex.column('title', 'author', 'year').select().from('books')
//等同于
select `title`, `author`, `year` from `books`

where

knex('users').where('id', 1)
//等同于
select * from `users` where `id` = 1

knex('users').where({ 
    first_name: 'Test', 
    last_name: 'User'
}).select('id')
//等同于
select `id` from `users` where `first_name` = 'Test' and `last_name` = 'User'

knex('users').where('votes', '>', 100)
//等同于
select * from `users` where `votes` > 100

越多的语法可以去官网上查看


Bookshelf

bookshelf是在knex基础上做多少匹配的,用起来也是很有利
一般用这几个来做ORM模块

安装
npm install bookshelf//必须先安装knex
数据库连接
//这里用knex连接数据库
var knex = require('knex')({
 client: 'mysql',
 connection: {
   host : '127.0.0.1',
   user : 'your_database_user',
   password : 'your_database_password',
   database : 'myapp_test',
   charset : 'utf8'
 }});

//连上knex
var bookshelf = require('bookshelf')(knex);

//选定使用的表,其中Model是bookshelf提供的一个便利的类,利用它能实现很多数据库的操作
//可以在其中添加很多属性,比如idAttribute,方便存取数据
var User = bookshelf.Model.extend({ tableName: 'users'});

//把User做成ORM模块的接口,这样就可以自由的使用Model提供的方法啦
module.exports = {
  User: User
}

bookshelf集成了广大ORM成效,固然有点时候白璧微瑕,但是能成功基本满足
上面不难介绍一下常用的成效

查询

bookshelf提供了诸多询问艺术,功用格外有力,先说一个简短的询问

Model = require('./你的路径/model');

//这里是用一个值来查询表项,比如用fghpdf(我的用户名)通过name字段来
//查询这一条表项,fetch()会匹配到这个表项,传给model
//model提供了get()方法来获取值,栗子中就是获取id的值
new Model.User({你的字段: 字段的值}).fetch().then(function(model) {
  console.log(model.get('id'));
})

bookshelf还提供了where查询等等格局,有趣味的可以进官网看一下

存储
Model = require('./你的路径/model');

//这里就是通过在接口传递值,用save()方法来保存在数据库中
//model可以返回错误信息
new Model.User({
  id: 值,
  name: 值,
  字段: 值
}).save().then(function(model){
  ...
})
删除

删去比较复杂,bookshelf提供了destroy的方法来删除表项,不过查找方法
跟预设的idAttribute有关,如若您在idAttribute中设置的值为id,那么你只
能通过id来删除

Model = require('./你的路径/model');

new Model.User({id: 1}).destroy().then(function(model){
  ...
})

自家之后用到越多的措施,会陆续更新给大家


学习网站

提供部分没错的上学网站以供参考
从零初步nodejs种类作品
cnode论坛
基本功科目
歪果仁写的教程

相关文章