Categories
JavaScript Answers

How to upload a file using POST request in Node.js?

Sometimes, we want to upload a file using POST request in Node.js.

In this article, we’ll look at how to upload a file using POST request in Node.js.

How to upload a file using POST request in Node.js?

To upload a file using POST request in Node.js, we can submit our files in a form data object.

For instance, we write

const req = request.post(url, (err, resp, body) => {
  if (err) {
    console.log('Error!');
  } else {
    console.log('URL: ' + body);
  }
});

const form = req.form();
form.append('file', '<FILE_DATA>', {
  filename: 'myfile.txt',
  contentType: 'text/plain'
});

to call request.post with to make a POST request object req.

Then we call req.form to create a form form data object.

Then we call form.append with the name of the file input, the file data, and the file metadata respectively.

We get the response from body in the request.post callback.

Conclusion

To upload a file using POST request in Node.js, we can submit our files in a form data object.

Categories
JavaScript Answers

How to create global variables accessible in all views using Express and Node.js?

Sometimes, we want to create global variables accessible in all views using Express and Node.js.

In this article, we’ll look at how to create global variables accessible in all views using Express and Node.js.

How to create global variables accessible in all views using Express and Node.js?

To create global variables accessible in all views using Express and Node.js, we can set the app.locals property.

For instance, we write

app.locals.baseUrl = "http://www.example.com"

to set app.locals.baseUrl to a string.

Then we can access the baseUrl string with

req.app.locals.baseUrl

in our middleware functions.

Conclusion

To create global variables accessible in all views using Express and Node.js, we can set the app.locals property.

Categories
JavaScript Answers

How to convert CSV to JSON in Node.js?

Sometimes, we want to convert CSV to JSON in Node.js.

In this article, we’ll look at how to convert CSV to JSON in Node.js.

How to convert CSV to JSON in Node.js?

To convert CSV to JSON in Node.js, we can use the csvtojson module.

To install it, we run

npm i csvtohjson

Then we use it by writing

const csv = require("csvtojson");

csv()
  .fromStream(readableStream)
  .subscribe((jsonObj) => {
    console.log(jsonObj)
  })

const csvToJson = async () => {
  const jsonArray = await csv().fromFile(filePath);
}

to call fromStream with a readableStream to read the CSV data from the stream.

Then we call subscribe with a callback to get the JSON converted from the CSV with jsonObj.

Also, we can use csv().fromFile with a CSV filePath to convert the CSV file at filePath to a JSON object by returning a promise with the JSON object.

We then get the JSON result with await.

Conclusion

To convert CSV to JSON in Node.js, we can use the csvtojson module.

Categories
JavaScript Answers

How to turn all the keys of an object to lower case with JavaScript?

Sometimes, we want to turn all the keys of an object to lower case with JavaScript.

In this article, we’ll look at how to turn all the keys of an object to lower case with JavaScript.

How to turn all the keys of an object to lower case with JavaScript?

To turn all the keys of an object to lower case with JavaScript, we can use the Object.entries and Object.fromEntries method and the string toLowerCase method.

For instance, we write

const newObj = Object.fromEntries(
  Object.entries(obj).map(([k, v]) => [k.toLowerCase(), v])
);

to call Object.fromEntries with the array returned by Object.entries and map.

Object.entries returns the key-value pairs in obj as an array of key-value pair arrays.

Therefore, we can call map on the returned array to return the lower case version of key k with k.toLowerCase.

Then we call Object.fromEntries to convert the array of key value pairs with the keys in lower case back to an object and assign it to newObj.

Conclusion

To turn all the keys of an object to lower case with JavaScript, we can use the Object.entries and Object.fromEntries method and the string toLowerCase method.

Categories
JavaScript Answers

How to check if token expired using the Node.js JWT library?

Sometimes, we want to check if token expired using the Node.js JWT library.

In this article, we’ll look at how to check if token expired using the Node.js JWT library.

How to check if token expired using the Node.js JWT library?

To check if token expired using the Node.js JWT library, we can use the jwt.verify method.

For instance, we write

const jwt = require('jsonwebtoken')
const util = require('util');
const jwtVerifyAsync = util.promisify(jwt.verify);

router.use(async (req, res, next) => {
  const token = getToken(req)
  try {
    req.auth = await jwtVerifyAsync(token, req.app.get('your-secret'))
  } catch (err) {
    throw new Error(err)
  }
  next()
});

to call util.promisify to convert the jwt.verify method to a function that returns a promise and assign it to jwtVerifyAsync.

Then we call jwtVerifyAsync with the token and the token secret to check if the token is valid.

If it’s expired, then it’s considered invalid and an error will be thrown.

And when an error is thrown we use the catch block to catch it and rethrow it with throw.

Otherwise, we call next to call the next middleware.

Conclusion

To check if token expired using the Node.js JWT library, we can use the jwt.verify method.