在npm package commandLineArgs中,一个字符串怎么可能被输入为Number ?
How is it possible for a string to be typed as Number in npm package commandLineArgs
下面的代码来自MongoDB的课程第3周的查询操作符在Node.js Driver一章:
var MongoClient = require('mongodb').MongoClient,
commandLineArgs = require('command-line-args'),
assert = require('assert');
var options = commandLineOptions();
MongoClient.connect('mongodb://localhost:27017/crunchbase', function(err, db) {
assert.equal(err, null);
console.log("Successfully connected to MongoDB.");
var query = queryDocument(options);
var projection = {
"_id": 1,
"name": 1,
"founded_year": 1,
"number_of_employees": 1,
"crunchbase_url": 1
};
var cursor = db.collection('companies').find(query, projection);
var numMatches = 0;
cursor.forEach(
function(doc) {
numMatches = numMatches + 1;
console.log(doc);
},
function(err) {
assert.equal(err, null);
console.log("Our query was:" + JSON.stringify(query));
console.log("Matching documents: " + numMatches);
return db.close();
}
);
});
function queryDocument(options) {
console.log(options);
var query = {
"founded_year": {
"$gte": options.firstYear,
"$lte": options.lastYear
}
};
if ("employees" in options) {
query.number_of_employees = {
"$gte": options.employees
};
}
return query;
}
function commandLineOptions() {
var cli = commandLineArgs([{
name: "firstYear",
alias: "f",
type: Number
}, {
name: "lastYear",
alias: "l",
type: Number
}, {
name: "employees",
alias: "e",
type: Number
}]);
var options = cli.parse()
if (!(("firstYear" in options) && ("lastYear" in options))) {
console.log(cli.getUsage({
title: "Usage",
description: "The first two options below are required. The rest are optional."
}));
process.exit();
}
return options;
}
我需要command-line-args
包,它有一个方法commandLineArgs
。一切都很好……
现在,我看到传递给该方法的对象的type
被设置为Number
。我们可以清楚地看到它们是String
s。
这怎么可能?
从command-line-args
GitHub页面:
type
值是一个setter函数(您从中接收输出),使您能够指定接收到的类型和值。
换句话说,传递Number
作为类型允许您将参数解析为数字。
相关文章:
- 同一项怎么可能在一个实例中未定义,却在另一个实例上定义
- (false==false==true)怎么可能是真的
- 不在443上运行https怎么可能呢
- 这个Javascript变量怎么可能有价值
- Extjs 4.2.1隐藏字段-inputEl.dom怎么可能未定义
- 桌面 HTML + CSS + JS 应用程序?这怎么可能
- “功能”就是功能,这怎么可能
- 开放层:怎么可能.功能覆盖在 3.13v 中替换
- JS:字符串真的是基元类型吗?如果是这样,这怎么可能
- 尝试通过php include放置png图像..这怎么可能
- 我怎么可能完成这种Javascript突出显示技术
- 我传递给函数的变量在该函数中怎么可能是未定义的
- 在JavaScript中:如果Object是一个函数,那么如果一个函数是一个对象的实例,它怎么可能呢
- Javascript:一个带键的数组怎么可能呢
- 函数正在重写变量.这怎么可能
- 怎么可能object==这个,但是object.member!=this.member在Javascript中
- 一个有内容的iFrame怎么可能有一个未定义的contentDocument对象
- leaflet.js:setView()完成动画时引发的事件.这怎么可能
- 我怎么知道字符串中是否所有字符都是大写的
- 在npm package commandLineArgs中,一个字符串怎么可能被输入为Number ?