NotoriousDMC
NotoriousDMC

Reputation: 83

React Native and require('http')

The node core shipped with React Native does not seem to include node core http. Is it possible to add it and use at all within React Native?

Many Thanks in Advance.

Upvotes: 7

Views: 10927

Answers (3)

Yi Wang
Yi Wang

Reputation: 1005

Try this module: https://github.com/peter4k/react-native-backbone. It use backbone concept and has some http method.

Upvotes: 0

Jonathan Huang
Jonathan Huang

Reputation: 2086

According to the react-native team,

For this specific case you'll likely want to use the fetch API which is provided by the environment. React Native does not run inside of the node runtime.

fetch works similarly to http. Here is a short example of how to use it:

// Using fetch to POST

fetch(requestURL, {
  method: 'POST',
  headers: {
   'Accept': 'application/json',
   'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    message: this.state.input,
  })
 })

// Using fetch to GET

fetch(requestURL)
  .then((response) => response.json())
  .then((responseData) => {
    this.setState({
      dataSource: this.state.dataSource.cloneWithRows(responseData),
      loaded: true,
    });
  })
   .done();

Upvotes: 17

Colin Ramsay
Colin Ramsay

Reputation: 16476

I think you're stuck at the moment. My understanding is that while React Native uses nodejs to get up and running, the runtime isn't actually nodejs, which is why you can't just require http.

This closed issue says pretty much that, with regards to util and request from nodejs:

https://github.com/facebook/react-native/issues/375

Upvotes: 8

Related Questions