自己写NodeJs开发规范

开发规范



命名规范
>1. 变量命名,首字母小写,其余首字母大写方式,如:userAddress, articleTitle 等等
>2. 方法命名,同变量命名,如:sayHello(), printLog() 等等
>3. 类命名, 所有单词首字符大写,如 User, UserPermission
>4. 常量命名, 所有单词大写,以下化线分割, 如 APP_ID, APP_SECRET等等
>5. 适用以上所有,命名应该尽量通俗易懂,如 getUserByUsername,getUserById 要好于getUserByCondition(),更多详情可以参考 [《代码整洁之道》](http://item.jd.com/10064006.html)

<A NAME="comment"></A>注释规范
>1. 方法注释,如根据用户名密码验证用户: 
/**
 * 验证用户合法性(方法作用)
 *
 *@param {String} username 用户名 (参数注释)
 *@param {String} password 密码(参数注释)
 *@param {function} callback
 * - err
 * - User
 **/
var authenticate = function(username, password, callback){
    User.findOne({username:username,password:password}, callback);
}
>2. 类注释
/**
 * 分页控件类
 *
 *@param {Number} page 当前页
 *@param {Number} perPage 每页记录数
 *@param {Number} total 总页数
 *@param {Array} items 记录条目(如查询第一页图书,items为第一页图书所有记录)
 **/
function Paginate(page, perPage, total, items){
    this.page = page;
    this.perPage = perPage;
    this.total = total;
    this.items = items;
}
>3. 普通变量注释,一般通俗易懂变量无需注释,如username, password,或者通俗英语单词travelRoute,缩写单词需要注释,但是应该尽量避免使用缩写单词
//用户具有的money
var userOwnMoney = 1000;
>4. 类变量注释: 
/**
 * 分页控件类
 *
 *@param {Number} page 当前页
 *@param {Number} perPage 每页记录数
 *@param {Number} total 总页数
 *@param {Array} items 记录条目(如查询第一页图书,items为第一页图书所有记录)
 **/
function Paginate(page, perPage, total, items){
    this.page = page;
    //下一页
    this.nextPage = this.page + 1;
}

方法定义以及,exports规范
>1. proxy, controller, middleware 中的方法采用var定义, 所有exports放在文件最后,方便代码复用,如验证用户是否登录中间件,以及验证是否登录并且用户账号类型是销售的中间件定义[代码地址](http://gitlab.tulingdao.com/top/tree/development/modules/auth/routes/middleware/index.js):
/**
 * 验证是否登陆
 *
 * @param req
 * @param res
 * @param next
 */
var requireLogin = function(req, res, next){
    var user = req.session.user;
    if(!user){
        if(req.xhr){
            res.jsonp({errcode:-99, errmsg:'您还没有登录或者已经超时'});
        }else{
            req.session.error = '您还没有登录或者已经超时';
            res.redirect('/auth/login?next='+req.originalUrl);
        }
    }else{
        next();
    }
}

/**
 * 验证是否登陆并且账号类型是旅行社
 *
 * @param req
 * @param res
 * @param next
 */
var requireLoginAndTravelOrgAccount = function(req, res, next){
    var user = req.session.user;
    requireLogin(req, res, function(){   //此处复用了requireLogin中间件
        if(User.isAccess(User.TRAVEL_ORG_ACCOUNT_TYPE, user.accountType)){
            next();
        }else{
            req.session.error = '您不具备旅行社账号权限';
            req.redirect('/');
        }
    })
}

测试规范(待完善)
>1. 所有方法需要书写单元测试
>2. 测试使用mocha框架,详情见[http://visionmedia.github.io/mocha/#installation]
>3. 测试路径与源代码采用相同路径,如 源代码下 controllers/user ,测试代码下是 test/controllers/user, 具体如下: 
    top
       -modules
            - auth
                - controllers
                - models
                - proxy
            - 其他模块
        - test
            - auth
                - controllers
                - models
                - ...
            - test.js在test.js中require所有测试文件
>4. 测试举例如下:
/**
 * Created by hp-wanglihui on 2014/6/2.
 */

'use strict';

var User = require('../../models').User;
var UserProxy = require('../../proxy').UserProxy;
var assert = require('assert');

//测试UserProxy
describe('UserProxy', function(){
    //测试newAndSave方法
    describe('#newAndSave',function(){
        it('it should add success and callback(null, User instance)', function(){
            var username = Date.now()+'';
            var email = username+'@test.com';
            var password = '123456';
            var user = new User({email:email, username:username, password:password});
            UserProxy.newAndSave(user, function(err, user){
                assert.equel(null, err);
                assert.equal(true, user instanceof User);
            })
        })
    })
})

转载于:https://my.oschina.net/wanglihui/blog/284287

<think>好的,用户想了解如何在Windows上配置Node.js开发环境的入门教程。首先,我需要回忆一下Node.js在Windows上的安装步骤和常见配置。记得通常是从官网下载安装程序,然后配置环境变量。 然后,用户提到了引用中的内容,特别是引用[1]和[2],其中提到环境变量的区分以及Node.js获取系统环境变量的方法。需要确保在教程中涵盖如何设置环境变量,尤其是在开发和生产环境中的不同配置。 接下来,安装后的验证步骤很重要,比如检查node和npm的版本。可能还需要介绍使用npm初始化项目,安装常用模块,比如Express,这样用户能快速开始开发。 另外,引用[3]提到了Docker部署,但用户的问题是关于Windows环境配置,可能暂时不需要深入Docker,不过可以稍微提一下作为扩展知识。 用户可能作为新手,需要详细的步骤,比如安装过程的截图位置,如何打开命令提示符,如何运行简单的服务器示例。同时,常见问题如路径问题、权限问题也需要提及。 还要注意区分开发和生产环境的环境变量设置,比如使用dotenv包来管理,这样引用[1]中的内容就能自然融入教程中。最后,生成相关问题时要围绕环境配置、工具使用、调试和生产部署等方面。</think>### Windows 下 Node.js 开发环境配置入门教程 #### 一、安装 Node.js 1. **下载安装包** 访问[Node.js 官网](https://nodejs.org/),选择"LTS"版本(长期支持版)下载 Windows 安装包(.msi)。 2. **安装步骤** - 双击安装包,按向导完成安装(默认勾选`npm`包管理工具和自动添加环境变量)。 - 安装路径建议保持默认(如`C:\Program Files\nodejs\`),避免权限问题[^2]。 3. **验证安装** 打开命令提示符(CMD/PowerShell),输入以下命令: ```bash node -v # 显示 Node.js 版本 npm -v # 显示 npm 版本 ``` #### 二、配置开发环境 1. **设置环境变量** - 开发环境变量:通过`process.env.NODE_ENV = 'development'`定义[^1]。 - 自定义变量:在项目根目录创建`.env`文件,使用`dotenv`包加载: ```bash npm install dotenv # 安装依赖 ``` ```javascript // app.js require('dotenv').config(); console.log(process.env.DB_HOST); // 读取自定义变量 ``` 2. **配置编辑器** 推荐使用 Visual Studio Code(VSCode): - 安装插件:ESLint(代码规范)、Prettier(格式化)、Node.js Modules Intellisense(模块智能提示)。 3. **初始化项目** ```bash mkdir my-project && cd my-project npm init -y # 生成 package.json npm install express # 示例:安装 Express 框架 ``` #### 三、开发调试示例 1. **创建简单 HTTP 服务器** ```javascript // app.js const express = require('express'); const app = express(); app.get('/', (req, res) => res.send('Hello Windows!')); app.listen(3000, () => console.log('Server running on port 3000')); ``` 2. **运行与调试** ```bash node app.js # 启动服务 # 浏览器访问 http://localhost:3000 ``` #### 四、常见问题解决 - **权限问题**:若安装全局包失败,以管理员身份运行终端。 - **路径错误**:检查环境变量`PATH`是否包含`C:\Program Files\nodejs\`[^2]。 - **版本冲突**:使用`nvm-windows`管理多版本 Node.js
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值