Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 746
Yaron Naveh Avatar asked Dec 01 '11 01:12

Yaron Naveh


2 Answers

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();
like image 177
RightSaidFred Avatar answered Sep 28 '22 22:09

RightSaidFred


V8 is just a javascript engine, it doesn't have browser host methods like alert or host objects like XMLHttpRequest.

like image 22
Esailija Avatar answered Sep 29 '22 00:09

Esailija