29

nodejs之knex模块从安装到使用

knex.js是bookshelf框架的基础,其核心是query builder。这篇文章参考自Knex.js官网,翻译并总结了该框架的方法。

0 安装

1 初始化

把数据库类型和连接相关的参数配置好之后,才可以正确的连接到数据库,connection的信息可以写到config文件中。

2 概述

knex框架的方法大致分为几类: Continue reading

08

nodejs base64 编码解码

普通字符串 编码解码:

编码解码并转成hex

编码解码图片

Continue reading

03

微信小程序引用SDK(wafer-node-sdk)正确操作数据库

微信小程序引用SDK正确操作数据库方法:

注意:

1、必须使用await,因为数据库获取是异步返回的,此处折腾了好久,刚开始不知道是异步的,总获取不到信息

2、使用await的情况下,必须使用async,否则会报错

**如果不使用await,打印数据库查询结果为如下形式: Continue reading

02

NodeJS进程管理工具之PM2实用入门指南

简介

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。

下面就对PM2进行入门性的介绍,基本涵盖了PM2的常用的功能和配置。

安装

全局安装,简直不能更简单。

目录介绍

pm2安装好后,会自动创建下面目录。看文件名基本就知道干嘛的了,就不翻译了。

  • $HOME/.pm2 will contain all PM2 related files
  • $HOME/.pm2/logs will contain all applications logs
  • $HOME/.pm2/pids will contain all applications pids
  • $HOME/.pm2/pm2.log PM2 logs
  • $HOME/.pm2/pm2.pid PM2 pid
  • $HOME/.pm2/rpc.sock Socket file for remote commands
  • $HOME/.pm2/pub.sock Socket file for publishable events
  • $HOME/.pm2/conf.js PM2 Configuration

入门教程 Continue reading

01

NodeJS流程控制(同步回调并在外层获取回调返回值)

做了个Node项目,某个流程中最多五层回调进行逻辑判断,客户还要加一些业务,如果再这么做下去,至少还要加两层回调。就可读性来讲,是很差的。胃有点翻腾,要吐出来了…

在网上查了查,有很多人说Node的回调是个坑,但是个人还是愿意接受这不是Node坑的理论,回调这是Node的一个思想,我们既然选择了使用Node,就应该去分析、理解和适应它。

我相信无论遇到什么问题,总是能解决的。如果现在不能解决,那只是暂时没有想到解决办法而已。

一、generator(生成器)

是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。

我喜欢并在使用着这种方法,这种方法很优雅。

作用:一是同步流程控制Node回调;二是或以在外层获取回调函数内的返回值;三是如果逻辑判断层级很多,那么使代码的可读性更好; Continue reading

20

Linux系统中使用forever让node.js持久运行

 

18

nodejs之MySQLdb模块

基本的使用还是很简单的,进一步使用还没操作,先从网上找点资料放上来,以备后续查看

1.引入MySQLdb库

import MySQLdb

2.和数据库建立连接

conn=MySQLdb.connect(host=”localhost”,user=”root”,passwd=”sa”,db=”mytable”,charset=”utf8″)
提供的connect方法用来和数据库建立连接,接收数个参数,返回连接对象.

比较常用的参数包括
host:数据库主机名.默认是用本地主机.
user:数据库登陆名.默认是当前用户.
passwd:数据库登陆的秘密.默认为空.
db:要使用的数据库名.没有默认值.
port:MySQL服务使用的TCP端口.默认是3306.
charset:数据库编码.
更多关于参数的信息可以查这里

http://mysql-python.sourceforge.net/MySQLdb.html

然后,这个连接对象也提供了对事务操作的支持,标准的方法
commit() 提交
rollback() 回滚

3.执行sql语句和接收返回值

cursor=conn.cursor()
n=cursor.execute(sql,param)
首先,我们用使用连接对象获得一个cursor对象,接下来,我们会使用cursor提供的方法来进行工作.这些方法包括两大类:1.执行命令,2.接收返回值

cursor用来执行命令的方法:
callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
executemany(self, query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
nextset(self):移动到下一个结果集

cursor用来接收返回值的方法:
fetchall(self):接收全部的返回结果行.
fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
fetchone(self):返回一条结果行.
scroll(self, value, mode=’relative’):移动指针到某一行.如果mode=’relative’,则表示从当前所在行移动value条,如果mode=’absolute’,则表示从结果集的第一行移动value条.

下面的代码是一个完整的例子.
#使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s
sql=”insert into cdinfo values(%s,%s,%s,%s,%s)”
#param应该为tuple或者list
param=(title,singer,imgurl,url,alpha)
#执行,如果成功,n的值为1
n=cursor.execute(sql,param)

#再来执行一个查询的操作
cursor.execute(“select * from cdinfo”)
#我们使用了fetchall这个方法.这样,cds里保存的将会是查询返回的全部结果.每条结果都是一个tuple类型的数据,这些tuple组成了一个tuple
cds=cursor.fetchall()
#因为是tuple,所以可以这样使用结果集
print cds[0][3]
#或者直接显示出来,看看结果集的真实样子
print cds

#如果需要批量的插入数据,就这样做
sql=”insert into cdinfo values(0,%s,%s,%s,%s,%s)”
#每个值的集合为一个tuple,整个参数集组成一个tuple,或者list
param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))
#使用executemany方法来批量的插入数据.这真是一个很酷的方法!
n=cursor.executemany(sql,param)

4.关闭数据库连接

需要分别的关闭指针对象和连接对象.他们有名字相同的方法
cursor.close()
conn.close()

四步完成,基本的数据库操作就是这样了.下面是两个有用的连接
MySQLdb用户指南: http://mysql-python.sourceforge.net/MySQLdb.html
MySQLdb文档: http://mysql-python.sourceforge.net/MySQLdb-1.2.2/public/MySQLdb-module.html

09

CentOS 6.9下WDCP集成环境使用反向代理配置域名无端口号访问Node网站

CentOS 6.9安装了WDCP的的集成环境(nginx+apache+php+mysql+xend+pureftpd+phpmyadmin),为了使访问Node项目的域名后不显示端口号,那么需要使用Nginx的反向代理,但是还要保持集成环境中的apache对前端的动态内容处理。

配置文件是建站时默认生成的,那么一些默认内容我没有删除,只是给注释掉了。

1、打开WDCP管理后台,默认是http://你的ip:8080/,点击步骤如下图:

20180109161233

2、修改nginx配置文件,配置文件名称默认形式一般为www_mrdede_com.conf,修改方法如下: Continue reading

09

Linux CentOS编译与非编译安装NodeJS方法

淘宝NodeJS镜像

Linux下载地址 https://npm.taobao.org/mirrors/node/v8.9.4/node-v8.9.4-linux-x64.tar.xz

CentOS 6.9安装NodeJS命令:

一、非编译安装NodeJS:

如果是上面的目录结构,这是不需要编译安装,也就是说直接把它放在某个位置,之后把目录加入到Linux环境变量就可以使用了。方法如下:

建一个文件夹,准备复制node文件:

复件文件:

使用vi工具(vi/vim命令及使用方法)把路径加入环境变量:

打开文件后,把下面代码加在最后面,如下:

修改完文件后,需要再重新执行一下环境文件

查看是否成功:

如果成功则会打印出安装的Node版本号,则清理一下垃圾,如下:

完成。

二、编译安装NodeJS:

如果是需要编译安装的Node,命令如下:

如果无法查看到版本号,需要手动加入环境变量:

还有一种加入到全局的方法:

三、yum安装NodeJS:

另有一种更简单的方法,通过yum包管理器安装,我没有这么安装过,因为我怀疑他不是最新版本,但是我查询它是有Nodejs-x64包的,命令如下: