zoukankan      html  css  js  c++  java
  • mongoose 由一个版本引起的问题

    nodejs 由于是用javascript 这种弱类型语言进行开发,难免会出现各种让人意想不到的问题.最近就出现了一个:

    mongoose 模块由于版本问题造成的:查询skip limit 在4.0.x上必须要是number 类型,做了严格的类型检查

     这个版本之下的可以是'1',这样的 字符串,会自动转换为number. 

    由这个错误我总结:

    1.mongoose 命令会将参数整合成一个json ,然后对json 进行格式和类型的检查,最后吧json发送到数据库端执行.

    2.mongoose 版本升级将可能造成很大的被动.冒然升级会可能造成巨量的未知问题.数据库毕竟是个比较重要的环节,不

    得不重视.

    3.版本管理是一系列的问题  从最底层的系统  数据库 到数据库驱动模块,在项目开始之前  最好多多进行测试.找到稳定的搭配

    ,一旦确定后应该保持开发,测试,生产环境统一.

    4.对于node环境来说 log非常的重要,很多问题可以通过有效的log,输出到前端,或者后端记录文件给出权限给程序员查看用来定位问题.生产机可是没有办法debug 跟踪调试的.

    5.node 本身的版本问题也会造成模块的影响,这个最好在项目一开始就用tnvm 来管理版本,确定一个跟各个模块比较融合的node 版本.并且轻易的不要去升级node.

    参考一个不错的关于nodejs package 版本控制的文章:

    http://www.tuicool.com/articles/2aUB7j

    摘要:

    一个node package有两种依赖,一种是dependencies,另一种是devDependencies,其中前者依赖的项是正常运行该包时所需要的依赖项,而后者则是开发的时候需要的依赖项,像一些进行单元测试之类的包。简单来记就是下面的
    
    “dependencies”: {}     //生产环境
    
    “devDependencies”: {}//开发环境
    
    在package.json所在目录执行npm install的时候,devDependencies里面的模块也会被安装的。如果我们只想安装dependencies里面的包,可以执行
    
    npm install –production
    
    如果只安装devDependencies,可以执行
    
    npm install –dev
    
    同理,使用npm install node_module –save自动更新dependencies字段值,使用npm install node_module –save-dev自动更新devDependencies字段值。

    另外附上:npm list node_module_name 可以查看某个已经安装的模块的版本.因为有时候没有--save 到package.json中去,或者是copy过来的模块(估计是invalid的原因).

  • 相关阅读:
    判断字符串是否包含某一个值方法
    生成一个随机手机号
    python 常用数据类型及操作方法
    selenium 常用的定位方法
    mysql 多表查询
    转载--python全栈开发学习
    Jenkins执行jmeter自动化脚本方法
    阅读方法
    pytorch学习
    英文阅读材料记录
  • 原文地址:https://www.cnblogs.com/xuezizhenchengxuyuan/p/6673937.html
Copyright © 2011-2022 走看看