Search code examples
javascriptv8embedded-v8

http functions in V8 javascript engine


I want to use the V8 javascript engine standalone, e.g. I will run it in command line as explained here:

$> ./v8-shell -e 'print("10*10 = " + 10*10)'

I want the javascript to perform some http requests, preferably using jQuery APIs but XMLHttpRequest is also ok.

Is there any built in method in V8 to do this? If not is there any way to achieve it without implementing accessors/cpp extensions?


Solution

  • Is there any built in method in V8 to do this?

    Not in V8 directly, but there is NodeJS that adds network and file system functionality, among other features.

    To steal an example from the documentation:

    var options = {
      host: 'www.google.com',
      port: 80,
      path: '/upload',
      method: 'POST'
    };
    
    var req = http.request(options, function(res) {
    
         // callback invoked when response is received
      console.log('STATUS: ' + res.statusCode);
      console.log('HEADERS: ' + JSON.stringify(res.headers));
      res.setEncoding('utf8');
    
      res.on('data', function (chunk) {
    
          // 'data' event is fired whenever a chunk of the response arrives
        console.log('BODY: ' + chunk);
      });
    });
    
    req.on('error', function(e) {
      console.log('problem with request: ' + e.message);
    });
    
    // write data to request body
    req.write('data\n');
    req.write('data\n');
    req.end();