Categories
JavaScript Answers

How to use async/await at the top level with Node.js?

Sometimes, we want to use async/await at the top level with Node.js.

In this article, we’ll look at how to use async/await at the top level with Node.js.

How to use async/await at the top level with Node.js?

To use async/await at the top level with Node.js, we can create an IIFE.

For instance, we write

(async () => {
  try {
    const text = await main();
    console.log(text);
  } catch (e) {
    // ...
  }
})();

to call the async function immediately after it’s been created by wrapping the function with parentheses and call it with () at the end.

We use await before calling main to return the resolved value of the promise returned by main.

And we use catch to catch any promise rejecttion.

Conclusion

To use async/await at the top level with Node.js, we can create an IIFE.

Categories
JavaScript Answers

How to determine the current operating system with Node.js?

Sometimes, we want to determine the current operating system with Node.js.

In this article, we’ll look at how to determine the current operating system with Node.js.

How to determine the current operating system with Node.js?

To determine the current operating system with Node.js, we can use the process.platform property.

For instance, we write

const isWin = process.platform === "win32";

to check if the Node.js program is running on Windows.

All possible values for process.platform include:

  • aix
  • darwin
  • freebsd
  • linux
  • openbsd
  • sunos
  • win32
  • android

Conclusion

To determine the current operating system with Node.js, we can use the process.platform property.

Categories
JavaScript Answers

How to fix Node.js throwing “btoa is not defined” error?

Sometimes, we want to fix Node.js throwing the "btoa is not defined" error.

In this article, we’ll look at how to fix Node.js throwing the "btoa is not defined" error.

How to fix Node.js throwing "btoa is not defined" error?

To fix Node.js throwing the "btoa is not defined" error, we can use the Buffer.from method with toString instead of btoa.

For instance, we write

console.log(Buffer.from('Hello World').toString('base64'));

to call Buffer.from with the string that we want to convert to base64.

Then we call toString with 'base64' to convert it to a base64 string.

We can decode it with

console.log(Buffer.from(b64Encoded, 'base64').toString());

where b64Encoded is the base64 string to decode.

Conclusion

To fix Node.js throwing the "btoa is not defined" error, we can use the Buffer.from method with toString instead of btoa.

Categories
JavaScript Answers

How to fix Mongoose findOneAndUpdate doesn’t return updated document?

Sometimes, we want to fix Mongoose findOneAndUpdate doesn’t return updated document.

In this article, we’ll look at how to fix Mongoose findOneAndUpdate doesn’t return updated document.

How to fix Mongoose findOneAndUpdate doesn’t return updated document?

To fix Mongoose findOneAndUpdate doesn’t return updated document, we call findOneAndUoate with the new option set to true.

for instance, we write

Cat.findOneAndUpdate({
  age: 100
}, {
  $set: {
    name: "jane"
  }
}, {
  new: true
}, (err, doc) => {
  if (err) {
    console.log("Something wrong when updating data!");
  }
  console.log(doc);
});

to call findOneAndUpdate with an object that sets new to true to return the new document as the value of doc.

We set name to 'jane' where the Cat entry has age value 100.

Conclusion

To fix Mongoose findOneAndUpdate doesn’t return updated document, we call findOneAndUoate with the new option set to true.

Categories
JavaScript Answers

How to get file name from absolute path with Node.js?

Sometimes, we want to get file name from absolute path with Node.js.

In this article, we’ll look at how to get file name from absolute path with Node.js.

How to get file name from absolute path with Node.js?

To get file name from absolute path with Node.js, we can use the path.basename method.

For instance, we write

const path = require("path");
const fileName = "C:\\Python27\\ArcGIS10.2\\python.exe";
const file = path.basename(fileName);

to call path.basename with the fileName path string.

As a result, file is 'python.exe'.

Conclusion

To get file name from absolute path with Node.js, we can use the path.basename method.