node开发
1. 国内使用npm安装某些插件的时候,偶尔会有网络问题,可以使用cnpm:(后续所有使用 npm 无法正常安装的,都改成 cnpm 试试)
a. 首先使用 npm 安装 cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org
b. 使用 cnpm -v 查看版本号:

2. 使用ORM插件sequelize,及自动生成表对象插件sequelize-auto。
官方地址:
https://github.com/sequelize/sequelize
https://github.com/sequelize/sequelize-auto
a. 使用 npm 安装 sequelize : npm install sequelize
b. 然后全局安装 mysql 及 sequelize-auto :npm install -g mysql sequelize-auto
c. 按文档使用命令行生成 model 文件:sequelize-auto -o "./xxxx/model/" -d database_name -h 192.168.1.1 -u sa -p 3306 -x 123456 -e mysql
其他参数查阅 https://www.npmjs.com/package/sequelize-auto
d. 检查文件夹 “./xxxx/model/” 下是否已经生成model对应文件,文件名与数据库表名相同。
3. 修改 sequelize-auto 的 model 模板,为 model 增加构造函数。
a. 找到 sequelize-auto 的 model 模板:C:\Users\XXX\AppData\Roaming\npm\node_modules\sequelize-auto\lib\index.js
b. 目前的版本是20161201提交的,大概在300行的位置,修改代码如下:
//由于增加后续代码,注释掉移除逗号相关代码 by MikeJia 20161212
//text[table] = text[table].trim()
//text[table] = text[table].substring(0, text[table].length - 1);
//********************************************************
//region add by MikeJia 20161212
var params="";
var setAttr="";
_.each(fields, function(field, x){
//自动编号列不列在构造函数中
var isSerialKey = self.tables[table][field].foreignKey && _.isFunction(self.dialect.isSerialKey) && self.dialect.isSerialKey(self.tables[table][field].foreignKey)
if(!isSerialKey){
params += field + ",";
setAttr += "'" + field + "':" + field + ",";
}
}); params = params.substring(0, params.length - 1);
setAttr = "{" + setAttr.substring(0, setAttr.length - 1) + "}";
text[table] += spaces + spaces + "classMethods: {\n";
text[table] += spaces + spaces + spaces + "getInstance:function(" + params + ") {\n";
text[table] += spaces + spaces + spaces + spaces + "return " + setAttr + ";\n";
text[table] += spaces + spaces + spaces + "}\n";
text[table] += spaces + spaces + "}";
//regionend add by MikeJia 20161212
//********************************************************
4. 使用 sequelize-auto 模板生成 model 后,mysql 数据库无法保存时间到毫秒。
a. 查看 model 会发现,datetime 类型的字段被设置为 ‘DataTypes.DATE’,该类型无法保存时间到毫秒。有两个解决方案:
I. 修改 sequelize 源码
II. 修改 sequelize-auto 模板
第二种简单一点。
b. 打开3.中提到的 sequelize-auto 模板文件。目前的版本是20161201提交的,大约238行左右,将原有代码注释掉,修改为 DateType.STRING 。代码如下:
else if (_attr.match(/^(date)/)) {
val = 'DataTypes.STRING'
//val = 'DataTypes.DATE';
}
else if (_attr.match(/^(time)/)) {
val = 'DataTypes.STRING'
//val = 'DataTypes.TIME';
}
5. 使用ab进行测试
a. 直接使用npm安装:npm install ab 。参考 https://www.npmjs.com/package/ab
b. 如果报错 “gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.”,需要安装python,官网下载(https://www.python.org/downloads/)。
node开发的更多相关文章
- node开发 npm install -g express-generator@4
Node forever : 1,forever start --uid test start app.js 2,forever start --uid test start -a app.js 3, ...
- [转] 使用NVM快速搭建NODE开发环境
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node 本文主要介绍最近自己碰到的几个坑以及搜索到的相应解决方案: 如何快速搭 ...
- node开发环境配置
node开发环境配置 用处 NodeJS——后台 JavaScript-前台 后台其他语言 1.PHP 2.Java 3.Pythonnode优势 1.性能高 nodejs php 86 1s 1分半 ...
- 手把手教你用Vue2+webpack+node开发一个H5 app
手把手教你用Vue2+webpack+node开发一个H5 app 前一篇vue2 + webpack + node 开发一个小demo说到了用vue的一些基本用法,这一篇就讲一个复杂一点的更完整的 ...
- 前端开发 Vue -1windows环境搭建Vue Node开发环境
解决几个疑问: 想学习下vue.js,我理解的它是一个前端的框架,主要作用是对数据的处理,和juqery类似,所以不太理解为什么要在nodejs中npm install vue呢?在html文件中引入 ...
- 如何用node开发自己的cli工具
如何用node开发自己的cli工具 灵感 写这个工具的灵感以及场景源于youtube的一次闲聊 github 地址 blog首发 使用场景 原本我们写博客展示shell,例如:安装运转docker,一 ...
- node开发指南
Node.js 能做什么 正如 JavaScript 为客户端而生,Node.js 为网络而生.Node.js 能做的远不止开发一个网站那么简单,使用 Node.js,你可以轻松地开发: 具有复杂逻辑 ...
- 用node开发repl应用
前言 每次看到一些库npm -g install xx然后,执行xx就可以跑起来,这不就是一个shell工具了吗,那么我不就可以不用学习shell语法,直接用js写命令行脚本了吗! 什么是REPL应用 ...
- 全栈工程师带你开发 ,node开发人脸识别门禁系统
效果图: 知识点: 人脸识别SKD部署, webRTC视频流处理,URL构建blob对象,Canvas映射截图,ajax数据交互,Node图像处理,跨域与413处理,base64解码,p ...
- Vue笔记:使用node开发vue入门实例
安装NPM 首先在命令终端输入 npm -v 检测是否安装 npm.如果没有,按照下面教程进行安装. 下载地址: nodejs中文网 到官网下载自己系统对应的版本,这里我们下载Windows系统的64 ...
随机推荐
- Java 对文件的读取操作
package pack; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- SASS学习笔记(1)
序 之前稍微看过SASS的文档,但是由于工作中没有涉及,渐渐的搁置了.最近公司新招来一个热情似火的前端,不管什么技术,不管自己能不能hold住,都提出来用一用再说.这样对我也好,跟着这个哥们混妥妥的长 ...
- Python全栈之路目录结构
基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...
- git 配置忽略文件(忽略UserInterfaceState.xcuserstate,Breakpoints_v2.xcbkptlist)
ios 配置忽略文件.gitignore 文件 之前新建了一个项目,在使用git管理版本的时候没有配置忽略文件 .gitignore 文件,结果导致每次提交的时候都会出现UserInterfaceSt ...
- 自定义View(二)增加View的属性
增加View的属性有两种方法 1.在View类中添加 2.在xml资源文件中添加 一.在View类中添加 例:实现一个带文字的图片 public class MyView exten ...
- python 正则re模块
re.match re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词. import re text = "JGood is a handsome boy, he ...
- JAVA可移植性广泛应用
一.JAVA作为一种编程语言:源代码可移植性 作为一种编程语言,JAVA提供了一种最简单同时也是人们最熟悉的可移植性–源代码移植.这意味着任意一个JAVA程序,不论它运行在何种CPU.操作系统或JAV ...
- net软件自动生成开发编程框架编程机器人
有一个.net自动生成平台(编程机器人)推荐给大家,常规几天十几天的工作,机器人几分钟搞定,不写一行代码,留下大把休闲时光,适应于聪明人:不想太累的程序员(看看风景泡泡妞),不想多请人的老板(有限资金 ...
- [译]关于iOS和OS X废弃的API你需要知道的一切
原文: Everything You Need to Know about iOS and OS X Deprecated APIs 如你所知,已废弃(Deprecated)的API指的是那些已经过时 ...
- 关于C++的递归调用(n的阶乘为例)
C++,是入门编程界的一门初期的语言.今天我们浅谈一下有关C++的递归调用. 在没有继承,多态,封装之前,C++几乎看成是C语言,除了一些简单的输出和头文件. 具体代码实现如下: #include&l ...