Node.js Best Practices - Part 2

原文: https://blog.risingstack.com/node-js-best-practices-part-2/

统一风格

在大团队开发JS应用, 创建一个风格指南是很有必要的. 推荐看看这个 Node.js Style Guide.

JSCS是一个JS代码风格检查器. 安装命令如下:

npm install jscs --save-dev

下一步在package.json文件中添加自定义脚本:

scripts: {
    "jscs": "jscs index.js"
}

当然, 你可以添加多个文件/文件夹.

Enforce JSHint / JSCS Rules

在commit提交之前就去检查代码风格是一个不错的选择.

这很容易做到,只需要使用 pre-commit就行了:

npm install --save-dev pre-commit

配置你的package.json 文件如下:

pre-commit": [
    "jshint",
    "jscs"
],

在每次commit之前pre-commit会去查找对应的script,并运行.

JS over JSON for configuration

许多项目的配置文件都是JSON的. 我们建议你也使用config.js文件:

Use NODE_PATH

你是否遇到过下面的事情?

当你接受了一个大的复杂项目的结构的时候会发现依赖模块非常混乱. 可以使用下面方法解决这个问题:

  • 将你的moudle指向node_modules文件夹
  • 使用 NODE_PATH

RisingStack使用NODE_PATH这种方式.

Setting up NODE_PATH

想象一下下面的项目结构:

我们可以使用NODE_PATH指向lib文件夹. 在我们的package.json文件中的start script section中可以设置,这样我们用npm start命令就可以运行我们的应用了.

依赖注入

依赖注入对于测试来说用处非常大

时间: 2024-10-09 15:12:48

Node.js Best Practices - Part 2的相关文章

Node.js Best Practices

原文: http://blog.risingstack.com/node-js-best-practices/ 下面的的最佳实践分为代码风格和开发工作流两种. 代码风格 Callback约定 Modules应该暴露出一个以error为第一个参数的callback接口. 如下: module.exports = function (dragonName, callback) { // 写下你module的逻辑 var dragon = createDragon(dragonName); // 注意

当Node.js遇见Docker

Node.js Best Practices - How to Become a Better Developer in 2017提到的几点,我们Fundebug深有同感: 使用ES6 使用Promise 使用LTS 使用Docker ... 想必大家都知道ES6,Promise以及LTS,那Docker是啥玩意啊?翻遍Node文档也没见踪迹啊! GitHub仓库: Fundebug/nodejs-docker 什么是Docker? Docker是最流行的的容器工具,没有之一.本文并不打算深入介

(翻译)《Hands-on Node.js》—— 引言

今天开始会和大熊君{{bb}}一起着手翻译node的系列外文书籍,大熊负责翻译<Node.js IN ACTION>一书,而我暂时负责翻译这本<Hands-on Node.js>(下载),为方便理解不采用直译的方式,若有翻译不当的地方还请不吝赐教,我会及时堪正. 引言 在09年欧洲JSConf大会上,一位叫做Ryan Dahl的年轻程序员介绍了一项他所负责的项目.该项目结合了谷歌V8 Javascript引擎以及event loop机制,从而可以使用JS来创建服务端平台.该项目跟其

node.js的安装及配置

一.安装 直接在浏览器搜索node.js,在官网上下载(一般旧版的更加稳定,比如下载4.4.7版本) 点击DOWNLOADS 往下翻,点击Previous Release Windows下载msi(64位/32位) 根据提示一步步安装,安装之后的文件夹如下: 在cmd命令行下输入node -v,如果出现如下,说明安装成功: 二.关于配置 在安装路径下新建两个文件夹: 创建完两个空文件夹之后,打开cmd命令窗口,输入 npm config set prefix "D:\Program Files

Node.js: Extend and Maintain Applications + large scale

https://blog.risingstack.com/node-js-mysql-example-handling-hundred-gigabytes-of-data/ My secondary goal with this article is to help you decide if Node.js + MySQL is a good fit for your needs, and to provide help with implementing such a solution. h

1.node.js windows环境搭建

作为服务端运行javascript的平台的NodeJs,把前台javascript移到了服务器端,Google V8引擎使其运行效率非常高,它可以异步,无任何阻塞运行程序.nodejs包含http服务器,可以为我们实现 web系统设计,客户端javascript编译器,等一系列的功能. 工具/原料 windows系统电脑 ,电脑可以上网 方法/步骤 下载windows平台nodejs环境安装包,百度一下nodejs官网,找到DOWNLOADS点击,找到Windows Installer 如果为6

在Node.js中使用RabbitMQ系列二 任务队列

在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应的这种同步模式.取而代之的是我们通过调度算法,让这些耗时的任务之后再执行,也就是采用异步的模式.我们需要将一条消息封装成一个任务,并且将它添加到任务队列里面.后台会运行多个工作进程(worker process),通过调度算法,将队列里的任

node.js搭建代理服务器请求数据

1.引入node.js中的模块 1 var http = require("http"); 2 var url = require("url"); 3 var qs = require("querystring"); 2.创建服务器 //用node中的http创建服务器 并传入两个形参 http.createServer(function(req , res) { //设置请求头 允许所有域名访问 解决跨域 res.setHeader("

Node.JS 文件读写,把Sheet图集转换为龙骨动画图集

Node.JS 文件读写,把Sheet图集数据转换为龙骨动画图集数据 var fs = require("fs") var readline = require("readline"); var rl = readline.createInterface({ input:process.stdin, output:process.stdout }); var path = undefined; var dbName = undefined; rl.question(