iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0
Mobile Development

ReactNative 懶人開發之路,薪水小偷練成日記(X系列 第 4

[Day:3]別再說窮沒錢買 server,誰說 APP 不能跑 Node.JS ( ˘•ω•˘ )

  • 分享至 

  • xImage
  •  

NODE.JS 大法好

身為大後端神教的信徒,我始終堅信

APP只是包了皮的後端服務,要 Node.JS 搬到 App 上在手機執行,
這樣我就可以把 task 丟給後端的強者同事了(✪ω✪)
還可以把後端的code直挖來用
/images/emoticon/emoticon01.gif
以上言論不代表本人立場

nodejs-mobile-react-native

https://github.com/JaneaSystems/nodejs-mobile-react-native

基於nodejs-mobile

https://github.com/JaneaSystems/nodejs-mobile
https://code.janeasystems.com/nodejs-mobile

https://ithelp.ithome.com.tw/upload/images/20200917/20104220UPAiWiSB6o.png

所以?

簡單來說就是在手機上跑起來一個 單行程的 Node.js service
所以不支援 child_process, cluster modules 等等...
至於 console 則是,可以用但是是你看不到 /images/emoticon/emoticon04.gif

我們安裝好後可以看到 ReactNative 專案目錄發生了巨大的改變 /images/emoticon/emoticon36.gif
多出了 nodejs-assets/nodejs-project

下面附上兩個最基本的ECHO範例

https://ithelp.ithome.com.tw/upload/images/20200917/20104220OIQKTIA5Lw.png

APP 端呼叫
onPress: (message) => {
           console.log('OK Pressed, message: ' + message)
           nodejs.channel.send(message + 'Alert message!')
         }
onPress: (customize) => {
           console.log('OK Pressed, customize: ' + customize)
           nodejs.channel.post(customize, customize+ 'Alert message!')
         }
APP 端接收
 componentDidMount() {
    nodejs.start("main.js");
    nodejs.channel.addListener(
      "message",
      (msg) => {
        alert("From node: " + msg);
      },
      this
    );
    nodejs.channel.addListener(
      "customize",
      (msg) => {
        alert("From node Command : " + JSON.stringify(msg))
      },
      this
    );
  }
加入 AsyncStorage 儲存資料
componentDidMount() {
   nodejs.start("main.js");
   nodejs.channel.addListener(
     "customize",
     (msg) => {
       alert("From node customize : " + JSON.stringify(msg))
       this.StoringData('@customize', JSON.stringify(msg));
       console.warn(msg)
     },
     this
   );
 }

 StoringData = async (key, value) => {
   try {
     await AsyncStorage.setItem(key, value)
     console.warn("StoringData")
   } catch (e) {
     console.warn("StoringData Error")
     // saving error
   }
 }

所以他可以拿來做什麼呢,嘿嘿嘿/images/emoticon/emoticon39.gif


上一篇
[Day:2]今天設計師請假,但是老闆說要改畫面∑( ̄□ ̄;)
下一篇
[Day:4]┌|◎o◎|┘ 所以 APP 為啥要跑 Node.JS ┌|◎o◎|┘
系列文
ReactNative 懶人開發之路,薪水小偷練成日記(X31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言