gpt4 book ai didi

node.js - yargs 仅采用命令行输入字符串的第一个单词

转载 作者:太空宇宙 更新时间:2023-11-03 23:01:09 24 4
gpt4 key购买 nike

我正在教程中开发一个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));
}
});

地理编码.js

const request = require('request');


let geocodeAddress = (address, callback)=>{
let encodedAddress = encodeURIComponent(address);
request({
url:`https://maps.googleapis.com/maps/api/geocode/json?address=${encodedAddress}`,
json:true
}, (err, response, body)=>{
if(err){
callback('unable to connect to service');
}else if(body.status === 'ZERO_RESULTS'){
callback('unable to find address');
}else if(body.status === 'OK'){
callback(undefined, {
address: body.results[0].formatted_address,
latitude: body.results[0].geometry.location.lat,
longitude: body.results[0].geometry.location.lng

});
}

});
}

module.exports.geocodeAddress = geocodeAddress;

here is the output when i run the code

最佳答案

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

所以运行:

node app.js -a "lombard street"

而不是

node app.js -a 'lombard street'

关于node.js - yargs 仅采用命令行输入字符串的第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47915586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com