I've started to learn node.js a few weeks ago.This weekend I've made a tiny app for to recap what I've learned so far.It uses OpenWeatherMap as a data-source.The user calls the main file (controller.js) via terminal and assigns a string (a location, usually town) as the one and only parameter. The app then prints some current weather-data for the named location to the screen. Here's my source-code:File 'controller.js'var model = require('./model');var view = require('./view');var location = process.argv[2];if (location && location.length > 0) {  model    .requestData(location).then(function(weatherData) {      view.displayWeatherReport(weatherData);    }).catch(function(errorMessage) {      console.log(errorMessage);    });} else {  console.log('Please provide a valid location as first argument.');}File 'model.js'var request = require('request');module.exports.requestData = function(searchCrit) {  var ret = new Promise(function(resolve, reject) {    var url =      'http://api.openweathermap.org/data/2.5/forecast?units=metric&q=' +      searchCrit +      '&mode=json&appid=efcd313fa7a139f2fb20de306648eb8d';    request(url, function(error, response, body) {      if (!error && response.statusCode === 200) {        // If everything is fine, then parsing should work.        //  If not an error is thrown and it goes into the        //  else-branch.        try {          var weatherData = JSON.parse(body);          resolve(weatherData);        } catch (e) {          reject('URL could not be resolved. ' +            'Hint from the provider was received ' +            'instead of JSON.');        }      } else {        reject('Requesting data from openweathermap has failed completely.\n' + 'Please check the provided location-argument.');      }    });  });  return ret;};File 'view.js'module.exports.displayWeatherReport = function(weatherData) {  let icon = weatherData.list[0].weather[0].icon;  let iconToDisplay = '';  // See : https://openweathermap.org/weather-conditions  if (icon === '01d') {    iconToDisplay = '--- O -----';  } else if (icon === '02d') {    iconToDisplay = '()() O ';  } else if (icon === '03d') {    iconToDisplay = '( ) ( )( )';  } else if (icon === '04d') {    iconToDisplay = '( ) ()';  } else if (icon === '09d') {    iconToDisplay = '/( ) ()';  } else if (icon === '10d') {    iconToDisplay = '/( ) o';  } else if (icon === '11d') {    iconToDisplay = '!!( ) ()';  } else if (icon === '13d') {    iconToDisplay = 'oo( )o ()';  } else if (icon === '50d') {    iconToDisplay = ' ~~~ ';  } else {    iconToDisplay = 'No icon available for current weather condition.';  }  let weatherDataToDisplay = `\n Location: ${weatherData.city.name} Temperature: ${weatherData.list[0].main.temp} degree Celsius Min. Temperature: ${weatherData.list[0].main.temp_min} degree Celsius Max. Temperature: ${weatherData.list[0].main.temp_max} degree Celsius Weather state: ${weatherData.list[0].weather[0].main} ${iconToDisplay}`;  console.log(weatherDataToDisplay);};Is everything done in a good way? Or has the code flaws which should be improved?Okay. My ASCII-art skills have to be improved. I admit ...But seriously and important:Is my implementation of the MVC-pattern correct?An according answer would help me to feel more confident about the topic MVC.But other hints and recommendations are also welcomed. :)
Weather-App for terminal done with node.js, OpenWeatherMap and ES6 promises
javascript;node.js;mvc;promise