Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

readFileSync is not a function

I am relatively new to Node.js and have been looking around but cannot find a solution. I did check the require javascript file and it does not seem to have a method for "readFileSync". Perhaps I don't have a proper require file? I had a hard time finding this file, everywhere talked about it but most people did not post where to get it.

I installed Node.js and have the require.js file. My current code is like this:

fs = require(['require'], function (foo) { //foo is now loaded. }); console.log("\n *STARTING* \n"); // Get content from file var contents = fs.readFileSync("sliderImages", 'utf8'); 

I had a bit at first getting require to work however it seems to load the require JavaScript file. I have been following guides and I am not sure why I get this error:

Uncaught TypeError: fs.readFileSync is not a function

I have tried many fixes and cannot seem to figure this one out.

like image 291
L1ghtk3ira Avatar asked May 24 '16 15:05

L1ghtk3ira


People also ask

What is readFileSync?

readFileSync() method is an inbuilt application programming interface of fs module which is used to read the file and return its content. In fs. readFile() method, we can read a file in a non-blocking asynchronous way, but in fs.

What is the difference between readFileSync and readFile?

readFileSync() is synchronous and blocks execution until finished. These return their results as return values. readFile() are asynchronous and return immediately while they function in the background.

Does readFileSync return a buffer?

readFileSync() returns a Buffer if you don't specify an encoding. Yup!

What Is syntax of readFile () method?

Syntax: fsPromises.readFile( path, options ) Parameters: The method accept two parameters as mentioned above and described below: path: It holds the name of the file to read or the entire path if stored at other location. It is a string, buffer, URL or a filename.


1 Answers

Node.js does not use Require.js. Require.js was built so that you could have asynchronous module loading on the client-side (in your browser).

Node.js uses CommonJS style modules. Your code using CommonJS would look like this:

var fs = require('fs'); console.log("\n *STARTING* \n"); var contents = fs.readFileSync("sliderImages", "utf8"); 

If we assume you saved this in a file called main.js you would then enter this command in your console (make sure you are in the same directory as the file):

node main.js 

This code will not run in the browser. Node.js runs on the server. If you want to load a JSON file on the browser side then you'll need to load it using AJAX. There are numerous resources available to show you how to do this. Be aware that you must either run your page from a server or have a special flag enabled to load in files from the file system.

like image 156
Mike Cluck Avatar answered Sep 28 '22 03:09

Mike Cluck