首先我们来看看如何读取命令参数:
安装optimist模块:npm install optimist;
测试代码:
var argv = require("optimist").argv;
for(var i = 0; i < argv.times; i++) {
console.log(argv._[0] + 'on loop number' + (i + 1));
}
我们输入不同参数测试:
- --times 8
- --times 8 echoing
- --times 8 Spinning Echoing
- Spinning --times 8 echoing
我们可以看到:
- optimist模块可以用于获取parameter(参数,例如times)和flag(标志,例如Spinning和Echoing)
下面我们看看如何获取输入信息:
readline是一个核心模块,所以我们无需额外获取;
我们的代码:
// get readline module reference
var rl = require("readline");
// get prompt
var prompts = rl.createInterface(process.stdin, process.stdout);
prompts.question("How many servings of fruit and vegetables do you eat each day?", function (servings){
var message = '';
if (servings < 5) {
message = "Since you're only eating " + servings + " right now, you might to start eating " + (5 - servings) + " more.";
} else {
message = "Excellent, your diet is on the right track!";
}
// output message
console.log(message);
// exit script
process.exit();
});
我们再来看看如何使用jQuery:
我们的package.json如下:
{
"name": "paragraphs",
"version": "0.0.0",
"description": "ERROR: No README.md file found!",
"main": "script.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"optimist": "0.3.4",
"jquery": "1.7.3"
},
"repository": "",
"author": "",
"license": "BSD"
}
我们的javascript代码如下:
// init modules
var argv = require('optimist').argv;
var $ = require('jquery');
var fs = require('fs');
// init file content
var file = argv._[0];
var html = fs.readFileSync(file, 'UTF-8');
// find all paragraph
$(html).find('p').each(function(index) {
var content = $(this).html();
// output paragraph html
console.log('Paragraph ' + (index + 1) + ': ' + content);
});
注意我们这里使用到的module主要是optimist和jquery,另外一个核心模块是fs。
注:这里比较惨的是我这里没法下载到jQuery模块,导致无法正常操作。
最后我们来看一下我们在执行前检查语法:
我们需要安装一个全局module--jshint: npm install -g jshint
之后我们可以在系统命令行中运行jshint <文件名>执行检查,例如:
jshint clean.js
jshint messy.js
其中clean就是一个简单的js脚本,messy是一个包含语法错误的脚本,用户需要通过语法检查后才能运行,内容如下:
function messy_javascript () {
"This is a line with " "bad" " concatenation.";
}