Month: June 2018

React: TypeError: Cannot read property ‘request’ of undefined

Posted on

I was getting the error : TypeError: Cannot read property ‘request’ of undefined  while I was building a react lab.

 

I noticed it said something about components not installed. I had ran npm install before but that wasn’t the fix.

 

yarn install is what fixed it, looks like some packages depended on yarn rather than npm.

 

Advertisement

Heroku: No default language could be detected for this app.

Posted on

I was uploading a vanilla JavaScript application to heroku.

Looks like I will need a buildpack for it to deploy. This is so Heroku can understand what type of app it has.

Solution1: Just deploy it as a github page. 

Since its a static site, there is nothing “serving” index.html, and heroku is a cloud platform, hosting apps, not a “webhost” in the web 2.0 sense.

Since I want to keep everything on heroku for now, lets see what else we can do.

Attempted Solution: rename index.html to index.php

The least effort solution is to rename your default file to index.php and redeploy. Heroku will detect it as a PHP site and use that buildpack. – John Beynon

Very curious! Would this work? Why not try it out.

hmm appears to work! I was going to deploy a sinatra app or ry the heroku static bundle and I will probably do that anyway but this quick solution can be a real timesaver!

Deploy your Rails API onto Heroku

Posted on Updated on

 

Go to your Heroku Dashboard. Click “new”-> “create new app”

Screen Shot 2018-06-13 at 11.09.15 AM

Give your app a name and click “Create app”

Screen Shot 2018-06-13 at 11.12.34 AM

There are several ways to deploy

  • Heroku CLI  – push your project up to Heroku from your command line
  • Github – Heroku is connected to github, so everytime github is updated your app is
  • Dropbox connected
  • Container Registry

We will be using Heroku CLI. If you need to install  use these instructions

By default Heroku ONLY supports the master branch. If you want to push up a branch other than master follow these instructions.

Add Heroku as a remote to your project

heroku git:remote -a name-of-your-heroku-app

Push your project to Heroku

git push heroku master

Did you just get an error? Did you use sqlite3 for your project?

remote: An error occurred while installing sqlite3 (1.3.13), and Bundler cannot
remote: continue.
remote: Make sure that `gem install sqlite3 -v ‘1.3.13’` succeeds before bundling
remote:
remote: In Gemfile:
remote: sqlite3
remote: !
remote: ! Failed to install gems via Bundler.

Click here for the fix.

Migrate and seed your database

In your command line run the following commands.

  • heroku run rake db:migrate
  • heroku run rake db:seed

Test your API using Postman

To get the address, just go back to the Heroku dashboard and click on “Open app” to get the link to your online api

Screen Shot 2018-06-13 at 12.56.13 PM

If you made it this far, your API should be deployed and now test it as you did locally (you did test locally didn’t you???).

The reason you need postman is if you setup your Rails API correctly when you query your site via browser you should get an error

This appname-api.herokuapp.com page can’t be found

but if you connect to it via postman you should get back the appropriate response

 

 

Converting Rails from sqlite3 to PostgreSQL

Posted on

Your mod 3 and 4 projects were probably done using sqlite3. If you did your mod5 project in sqlite3, tsk tsk!

  • edit your Gemfile
  • comment out sqlite and add gem pg
  • Screen Shot 2018-06-13 at 11.51.49 AM
  • run “bundle install”
  • edit config/database.yml
  • Change your databases names, as below.
  • Screen Shot 2018-06-13 at 12.01.58 PM
  • run rake db:create
  • run rake db:migrate
  • run rake db:seed(if you have a seed file)
  • Now test your app, and you are now using Postgres!

How do I know that it worked?

  • Go to the little Postgres elephant, and click him
  • Press stop
  • Screen Shot 2018-06-13 at 12.11.01 PM
  • If your site does not work, then you migrated successfully. Refresh your browser if needed
  • Now start up Postgres so you can continue developing!

I couldn’t get into on of my heroku sites

Posted on Updated on

Strange news on heroku,  one of my heroku apps was not working even though nothing had changed.

This nameofmyapp-api.herokuapp.com page can’t be found

No webpage was found for the web address: https: //  nameofmyapp-api.herokuapp.com/

HTTP ERROR 404

The problem doesn’t appear to be an app issue, rather a DNS issue.

Last I had checked it, it was working fine. I had used it on and off for several days. After about a week, I came back to it and found it in this state. I even clicked the app from the “Open app” tab in heroku. I don’t want to rename the app to see if it would work, because I should not have to do that.

Steps taken

  1. Dynos restarted
  2. Heroku log checked.
  3. Run postman against the API

Then I realize that I am looking at the API version of the app, not the similarly named frontend.

The api doesn’t respond to requests at the top level route. That is by design. The front end is named https://nameofmyapp-app.herokuapp.com/ similar to https://nameofmyapp-api.herokuapp.com/.

Ways to prevent this in the future:

  • Add “API” to the beginning of the name rather then the end.
  • Add custom domain to the front end
  • READ CAREFULLY!

 

 

uninitialized constant AuthorizeApiRequest::JsonWebToken

Posted on

Was a weird error.I build fully functioning apps locally before deployment. Locally when running rails server, this error never came up.
When I deployed the app to heroku, I then started receiving that error.
I thought adding “require ‘jwt'” might help, but it didn’t.

This comment by MikaOY pointed me in the right direction:
“Turns out it isn’t a problem with the AuthO implementation, just that libs/ is not included by auto-loaded by default in some versions of Rails.”

Well, I looked in application.rb and I was already autoloading lib. But it pushed me in the right direction.

I specifically had to require_relative the rb file that contained JsonWebToken. Still looking into why that is so, especially since I have a working instance locally. It could just be something with heroku. But hope this helped someone.

Pushing a non-master branch to Heroku

Posted on

I completed a React project with a Rails API backend. Locally everything worked prefectly.  When trying to change environment variables like the address of the API backend, I wanted to create a seperate branch for heroku, it case I needed to edit something for heroku. I would rather not clutter “master” with changes until they are 100% working.

Problem is heroku only recognizes master branches, but to test I need to commit to master

Well there is a work aorund, just push a different branch up to heroku manually


git push heroku [name-of-your-branch]:master

this way I can push up a branch I named heroku up to heroku.

Credit: link from Jordon Trevino

Difference between localhost sites and heroku hosted sites

Posted on

I built an app, Everything works perfectly locally.

Time to deploy to heroku.

Once on heroku I noticed that sometimes when I submitted something to my api from my front end site, there would be a significant delay of 2-3 seconds occasionally.

Other than possible removing heroku as the culprit by upgrading, the issue could possibly still be network related.

To bypass this I am going to build in a display message to show users that they did actually hit submit so they aren’t tempted to click submit twice.

Still dealing with network issues despite leaving Systems Administration behind.

woman wearing white sleeveless top and red bottoms laughing
Did you think you could leave networking problems behind?

 

 

 

 

Github markdown create links to sections in same md file

Posted on

tldr:    [Link text or description](#this-is-my-header-name-I-want-to-link-to)

I had a long Readme file, and wanted easy access on top to the sections of the Readme.md file.

If you have a header, you can link to that header


create a header: ##This is my header
the link to the header would be: [Link text or description](#this-is-my-header)

As you can see its just converting your text to lowercase and using dash instead of spaces.

If you are having a problem, you can always highlight the header and the link will show at the bottom of chrome. See how that python looking object showed up next to  “Examples”, and at the bottom is the full hyerlink. In this example, just the #example would suffice as I did in my example  above

Screen Shot 2018-06-02 at 6.38.44 AM