最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

yargs只占用命令行输入字符串的第一个单词

IT培训 admin 7浏览 0评论

yargs只占用命令行输入字符串的第一个单词

我正在从一个教程中的node.js命令行天气应用程序上工作,我意识到当我输入一个字符串作为输入时,只有第一个单词,字符串被分成一个单词数组,只返回第一个单词

app.js

const yargs = require('yargs');
const geocode = require('./geocode/geocode.js');
const argv = yargs
.options({
	a: {
		demand: true,//this argument is require
		alias: 'address',
		describe: 'Address to fetch weather for',
		string: true//always parse the address argument as a string
	}
})
.help()
.alias('help', 'h')
.argv;
geocode.geocodeAddress(argv.address, (errorMessage, results) => {
	if(errorMessage){
		console.log(errorMessage);
	}else{
		console.log(JSON.stringify(results, undefined, 4));
	}
});
回答如下:

您的代码没有问题,它是Windows命令行的行为。执行命令时,请使用双“”而不是“”。在第一个空格之后,所有参数都将在Windows上丢失。

所以运行:

node app.js -a "lombard street"

代替

node app.js -a 'lombard street'

yargs只占用命令行输入字符串的第一个单词

我正在从一个教程中的node.js命令行天气应用程序上工作,我意识到当我输入一个字符串作为输入时,只有第一个单词,字符串被分成一个单词数组,只返回第一个单词

app.js

const yargs = require('yargs');
const geocode = require('./geocode/geocode.js');
const argv = yargs
.options({
	a: {
		demand: true,//this argument is require
		alias: 'address',
		describe: 'Address to fetch weather for',
		string: true//always parse the address argument as a string
	}
})
.help()
.alias('help', 'h')
.argv;
geocode.geocodeAddress(argv.address, (errorMessage, results) => {
	if(errorMessage){
		console.log(errorMessage);
	}else{
		console.log(JSON.stringify(results, undefined, 4));
	}
});
回答如下:

您的代码没有问题,它是Windows命令行的行为。执行命令时,请使用双“”而不是“”。在第一个空格之后,所有参数都将在Windows上丢失。

所以运行:

node app.js -a "lombard street"

代替

node app.js -a 'lombard street'
发布评论

评论列表 (0)

  1. 暂无评论