basic node.js html file serving not working

var http = require('http');
var fs = require('fs')

http.createServer(function(req, res){
    fs.readFile('./samplehtml.html',function(err,data){
        res.writeHead(200,{'Content-Type':'text/html'});
        res.write(data);
        res.end();
    });
    
}).listen(7000);

when i run the above code it shows SITE CANNOT BE REACHED in browser. The following error is shown

TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer or Uint8Array. Received undefined
    at write_ (_http_outgoing.js:722:11)
    at ServerResponse.write (_http_outgoing.js:687:15)
    at ReadFileContext.callback (C:UsersriyabOneDriveDesktopnodemain.js:7:13)
    at FSReqCallback.readFileAfterOpen [as oncomplete] (fs.js:282:13) {
  code: 'ERR_INVALID_ARG_TYPE'

Answer

When you use fs.readFile(), you must check for errors. It is very likely that the file ./samplehtml.html doesn’t exist (probably, because the path is not relative to the location of the .js script, as you might expect).

Try this:

const path = require("path");
...
fs.readFile(path.join(__dirname, "./samplehtml.html"), (err, data) => {
...