• 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:UsersXXXAppDataRoaming pm ode_modulessequelize-autolibindex.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: {
    ";
          text[table] += spaces + spaces + spaces + "getInstance:function(" + params + ") {
    ";
          text[table] += spaces + spaces + spaces + spaces + "return " + setAttr + ";
    ";
          text[table] += spaces + spaces + spaces + "}
    ";
          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/)。

  • 相关阅读:
    车载OS盘点及特点分析一:车载OS几大系统介绍
    CTF常用软件/工具
    汽车软件产业研究报告(2020年)
    高级加密标准(AES)分析
    工具 | CTP、SimNow、NSight、快期
    CTF之图片隐写术解题思路
    V2X和车路协同研究:5G V2X将成为数字座舱标配
    腾讯安全正式发布《IoT安全能力图谱》
    Microsoft Remote Desktop Beta 下载地址
    密码学初探|加密模式
  • 原文地址:https://www.cnblogs.com/jiajinyi/p/6150451.html
Copyright © 2020-2023  润新知