![Parameterizing MySQL Queries in Node Parameterizing MySQL Queries in Node](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/parameterizing-mysql-node/header.jpg)
There are very few absolutes in software development. One of these would be “NEVER trust user input”. You should never run a database query involving user input without validating, sanitizing, and parameterizing the user-provided values. If you neglect to handle user input correctly, specifically parameterizing the data, your application will be vulnerable to attack from nefarious people. In this post, we will discuss how to parameterize user input in a Node.js application and how to use the SQL Template Tag module to make the process easier.
![Capturing GPS Data on a Raspberry Pi and Storing It as JSON Capturing GPS Data on a Raspberry Pi and Storing It as JSON](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/capturing-storing-gps/header.jpg)
In a previous post, I showed how you can install MySQL on a Raspberry Pi. In this post, I will show how to capture GPS data and store that data as JSON in MySQL Document Store.
![Installing MySQL Innovation Release on a Raspberry Pi Installing MySQL Innovation Release on a Raspberry Pi](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/installing-mysql-raspberry-pi/header.jpg)
A while back, I wondered if it was possible to run MySQL on a Raspberry Pi. Not only is it possible, but it is not as complicated as I expected. Read on to find out how.
![Applying Database Migrations in MySQL HeatWave With GitHub Actions Applying Database Migrations in MySQL HeatWave With GitHub Actions](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/github-actions-mysql-migrations/header.jpg)
In a previous post, I talked about how we can leverage GitHub Actions to automate running tests whenever a commit is made to a specific branch of a GitHub repository. In this post, we will discuss one way we can harness GitHub Actions to apply database migration scripts to a MySQL HeatWave Database Service instance running in Oracle Cloud Infrastructure (OCI).
![Running MySQL Tests With GitHub Actions Running MySQL Tests With GitHub Actions](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/github-actions-mysql-tests/header.jpg)
Recently, I have been talking about how to write and run tests for Node.js code that interacts with a MySQL database. These posts have included details on how to use third-party libraries such as Testcontainers to run the tests in a clean database and Knex to manage database changes. Today, I will discuss how to automate running these tests using GitHub Actions when code is pushed to a repository.
![Integrating DB Migrations Into Your MySQL Tests Integrating DB Migrations Into Your MySQL Tests](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/mysql-testing-knex-testcontainers/header.jpg)
In previous posts, I discussed how we can use Testcontainers to more easily test code that interacts with a MySQL Database and code that interacts with MySQL Document Store. In yet another post, I demonstrated how to manage database migrations using Knex. This post will show how we can leverage Knex to incorporate database migrations into our testing workflow.
![A Tool For Poor Typists - SendKeys A Tool For Poor Typists - SendKeys](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/send-keys-intro/header.jpg)
Ask anyone who has had a conversation with me over IM or email, and they will tell you I am a horrible typist. I was never a great typist, but was much better in high school. After graduating, it would be about 13 years before I would need to type again. So, it was like learning all over again.
![The Undefined Show - Coming Soon The Undefined Show - Coming Soon](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/undefined-show/header.jpg)
I would like each and every one of you to join me and my good friends, Todd Sharp and Ray Camden, when we launch our new live stream, The Undefined Show, on September 11, 2023 at 8:00 PM Eastern. We will discuss a broad range of topics, primarily related to tech, coding, developer relations, and anything else that comes to mind.
![Managing MySQL Database Changes with Knex Managing MySQL Database Changes with Knex](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/managing-database-changes-knex/header.jpeg)
As all developers know, one of the most critical parts of any project is tracking database changes (or migrations). These changes will likely need to be applied in a particular order, and they need to be applied to every environment in the development workflow. We should also be able to roll back these changes should things not go as expected. Knex (pronounced like konnex
) can help us manage these migrations, roll back changes, and assist in applying them to different environments.
![Writing Tests For MySQL Document Store Apps with Node Writing Tests For MySQL Document Store Apps with Node](https://res.cloudinary.com/strozstuff/image/fetch/c_fit,w_250/https://idmqjyw9i2ib.objectstorage.us-ashburn-1.oci.customer-oci.com/n/idmqjyw9i2ib/b/blog/o/2023/testing-mysql-doc-store-apps-node/header.jpg)
In a previous post, I talked about how we can use Testcontainers to help make it easier to write tests for Node applications that interact with a MySQL database. In this post, we are going to discuss how we can write tests for Node applications that interact with MySQL Document Store - again using the MySQL Module for Testcontainers.