Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

    Dành cho các bạn muốn tìm hiểu về nodejs chạy trên nền tảng Php

    Chia sẻ
    0
    20
    6854
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      Zono4ever last edited by Zono4ever

      Mình làm quen với nodejs chưa lâu nhưng đã thấy yêu ngay từ cái nhìn đầu tiên về nodejs, vì tốc độ và cách sử lý dữ liệu mà không cần phải load lại trang.

      Vì mới tìm hiểu về nodejs nên vấn đề để bỏ tiền mua một VPS có thể hơi e ngại cũng như rất nhiều bạn ở nodejs forum chúng ta ở đây.

      Vô tình mình tìm thấy bản chạy nodejs trên nền tảng php (có thể chạy trên host & domain bình thường) nên đã rất tò mò.

      Mình đã thử chạy và thấy khá hài lòng với kiến thức mới gia nhập nền tảng nodejs như mình.

      Các bạn có thể tham khảo thêm ở đây https://github.com/niutech/node.php

      Dưới đây là bản demo mà mình làm trên host của mình.

      DEMO: http://api.cyviet.com/

      Bản demo của mình đã kết nối với mysql, tất cả text mà các bạn thấy đều được lấy trong sql bằng nodejs. Chạy express với views là ejs.

      tientoantai Lê Mạnh Hùng 2 Replies Last reply Reply Quote 0
      • tuanquynet
        tuanquynet last edited by

        Nếu chỉ để học thôi thì ok. Ngoài ra bạn nên thử dịch vụ của heroku https://www.heroku.com/pricing. It's free

        papa elf

        1 Reply Last reply Reply Quote 0
        • Nhat Hoang Vy
          Nhat Hoang Vy last edited by

          """Mình làm quen với nodejs chưa lâu nhưng đã thấy yêu ngay từ cái nhìn đầu tiên về nodejs, vì tốc độ và cách sử lý dữ liệu mà không cần phải load lại trang."""

          Bạn có nhầm lẫn ko vậy ??? nodejs là server-side làm gì có chuyện không cần load bạn trừ khi là angular , reactjs , ajax thôi bạn nhé .

          1 Reply Last reply Reply Quote 0
          • toandev
            toandev last edited by

            Bạn có nhầm giữa nodejs với meteor hoặc mean k vậy @@

            1 Reply Last reply Reply Quote 0
            • tientoantai
              tientoantai @Zono4ever last edited by

              @Zono4ever Bạn có hiểu mình đang viết cái gì không thế?

              1 Reply Last reply Reply Quote 8
              • domanhdat
                domanhdat last edited by

                Ok fine!

                1 Reply Last reply Reply Quote 6
                • Lê Mạnh Hùng
                  Lê Mạnh Hùng @Zono4ever last edited by Lê Mạnh Hùng

                  This post is deleted!
                  1 Reply Last reply Reply Quote 5
                  • npm
                    npm last edited by npm

                    đọc ... hiểu gì! dù sao cũng cảm ơn bạn 😃

                    1 Reply Last reply Reply Quote 4
                    • Vũ
                      Vũ Global Moderator last edited by

                      Xin chào,

                      Mình cho rằng @Zono4ever là người mới tiếp cận nodejs và đang trong giai đoạn khám phá, tìm hiểu. Đây có thể là những ý tưởng mới và sáng tạo. Có thể sẽ lạ lẫm và ngớ ngẩn với một số bạn, những người đã quá quen với những cái bình thường và tin vào bản chất nó mãi như thế.

                      Các bạn @tientoantai @domanhdat @Lê-Mạnh-Hùng @npm có thể là những tay dev cứng và chuyên nghiệp. Nhưng mình cảm thấy có gì không đúng ở đây ? Các bạn không hề gỡ rối hoặc trao đổi 1 cách tích cực để phản biện với chủ bài post. Điều này có thể dẫn đến những hậu quả tiêu cực, chẳng hạn như: Các thành viên khác hùa theo, thành viên mới không dám post bài vì biết chắc sẽ bị ăn gạch đá, post 1 lần rồi thôi.

                      Vậy mong tất cả các bạn trong diễn đàn này có những trao đổi thiện cảm với nhau, phản biện tích cực để giải quyết được vấn đề của người post bài.

                      Rất xin lỗi các bạn mà mình tag ở trên nếu những góp ý này của mình không được thiện cảm. Cũng rất mong các bạn ủng hộ quan điểm của mình và ủng hộ diễn đàn nodejs.vn để forum sẽ được tốt hơn. Ngày một đi lên !

                      Cảm ơn các bạn đã đóng góp cho cộng đồng trong suốt thời gian qua.
                      Trân trọng cảm ơn !

                      Tech-nông
                      Email: [email protected]
                      Profile: about.me/vunb
                      Github: github.com/vunb
                      Twitter: twitter.com/nhubaovu

                      1 Reply Last reply Reply Quote 3
                      • tientoantai
                        tientoantai last edited by

                        Xin chào,

                        Thứ nhất, cá nhân mình thừa nhận mình (RẤT) không có thiện cảm với bài viết này lý do thì chắc khá nhiều bạn biết.
                        Thứ 2, mình không thấy có gì cần phải gỡ rối ở đây cả, đây không phải bài thắc mắc hay hỏi đáp gì đây là showcase tức là bạn ấy đi KHOE và với những bài viết thế này mà đưa thông tin RẤT không chính xác thì theo quan điểm mình là KHÔNG THỂ CHẤP NHẬN ĐƯỢC
                        Thứ 3: Comment của mình có thể hiện thái độ phê phán tuy nhiên hình như chưa đến mức tiêu cực.
                        Thứ 4: Bạn có quyền thể hiện quan điểm cá nhân và đề nghị mọi người tôn trọng quan điểm của bạn mình không ý kiến nhưng hình như bạn cũng nên tôn trọng quan điểm của mình.
                        Cuối cùng: Cảm ơn ý kiến tâm huyết của bạn nhưng mình xin phép giữ nguyên thái độ của mình.
                        Thân ái.

                        1 Reply Last reply Reply Quote 5
                        • Khoa Lê Duy
                          Khoa Lê Duy last edited by

                          Xin xác nhận với anh em là nó có chạy nhé
                          Nhưng cũng cần phải tùy biến một chút
                          Một số hàm trên môi trường shared host chắc khó chạy
                          Mình biết hàm exec nó quá vãi nên hay bị disable
                          Nên cái này để nghiên cứu thôi chứ ổn đinh mình nghĩ không cao
                          Cũng có thể bạn nào có ông chú nào làm chủ shared host có thể dùng cái này để không mất $ mua VPS

                          Các bạn có thể tham khảo
                          https://stackoverflow.com/questions/24777750/how-to-host-a-node-js-application-in-shared-hosting/27391738#27391738
                          http://vinyll.scopyleft.fr/installing-a-custom-version-of-node-on-a-shared-hosting/
                          https://github.com/niutech/node.php

                          <?php
                          
                          /**
                           * Node.php v0.4
                           * (c) 2016 Jerzy Głowacki
                           * MIT License
                           */
                          
                          error_reporting(E_ALL);
                          
                          set_time_limit(120);
                          
                          define("ADMIN_MODE", false); //set to true to allow unsafe operations, set back to false when finished
                          
                          define("NODE_VER", "v5.7.0");
                          
                          define("NODE_ARCH", "x" . substr(php_uname("m"), -2)); //x86 or x64
                          
                          define("NODE_FILE", "node-" . NODE_VER . "-linux-" . NODE_ARCH . ".tar.gz");
                          
                          define("NODE_URL", "http://nodejs.org/dist/" . NODE_VER . "/" . NODE_FILE);
                          
                          define("NODE_DIR", "node");
                          
                          define("NODE_PORT", 49999);
                          

                          Có thể đoạn code trên nó chỉ chạy trên linux nên 1 số bạn không test được trên local
                          Các bạn dùng win có thể tùy biến. Mình nghĩ có khả năng chạy được thôi (96%) không đảm bảo nhé
                          Dưới đây là hinh anh mình trên máy mình
                          1_1498725695497_Screenshot from 2017-06-29 15-30-30.png 0_1498725695496_Screenshot from 2017-06-29 15-29-57.png

                          Và mình kết lại là: Mình vẫn yêu "Albert Einstein"

                          1 Reply Last reply Reply Quote 0
                          • Z
                            Zono4ever last edited by Zono4ever

                            Trời, mấy hôm nay mải vọc nodejs nên cũng quên là có lập topic ở đây.
                            Như tiêu đề mình chỉ muốn chia sẻ là có cách chạy nodejs trên nền tảng php và chạy được trên host bt chứ ko cần đến VPS ( nếu host đó hỗ trợ curl_exec, exec, passthru).

                            Mình cũng đã nói là mình mới tham khảo về nodejs chứ ko phải pro hay là lập topic này lên để khoe một file có cả link của chủ gốc và một demo mà nó chỉ có một link.

                            Demo của mình chỉ muốn cho các bạn thấy là host của mình dùng file node.php đó là có thể chạy những app.js đơn giản để cho ai mà chưa có VPS hay hosting ko hỗ trợ chạy nodejs thì có thể dùng cái này để thử.

                            @tientoantai theo bạn thì mình khoe khoang cái gì, khoe cái là mình ko biết gì về nodejs àh?!?!?! (mà hình như đây là showcase - Open Source mà )

                            @Khoa Lê Duy bạn có thể viết một function nhỏ để nó check nếu bị disconnect thì bắt nó khởi động lại và khi vẫn đang chạy bt thì bỏ qua function đấy là đc.

                            Mình ko biết là nó đc lâu không nhưng trang của mình từ hôm lập topic này thì chưa bị disconnect lần nào cả hay là vì nó cũng ko có gì nên chưa bị.

                            Đây là trang admin mà mình nghịch gõ

                            node pid * check

                            để xem nó đã bị disconnect | pid đã bị kill hay nó vẫn alive !

                            1 Reply Last reply Reply Quote 1
                            • Z
                              Zono4ever last edited by Zono4ever

                              Mình thấy hình như vẫn chưa có ai đã làm đc ngoài bạn @Khoa-Lê-Duy nên mình viết các bước mình đã làm để nó chạy đc.

                              Bạn nên chắc chắn là host của bạn cho phép curl_exec, exec, passthru nhé.

                              1. bạn vào link https://github.com/niutech/node.php và tải file node.php về máy.

                              2. mở file node.php đó ra và tìm đến dòng 13

                                => define("ADMIN_MODE", false); và thay false = true

                              3. tìm đến dòng 125
                                => $curl = curl_init("http://127.0.0.1:" . NODE_PORT . "/$path");
                                ở đây bạn thay http://127.0.0.1 = link host của bạn. Trên trang của mình sẽ là http://api.cyviet.com
                                Demo ( các bạn nên lập một subdomain để chạy thử )

                              4. tải file node.php lên host của bạn. ( Như trên demo của mình, mình lập một subdomain và có folder là api nên mình tải nó vào đây )

                              5. bắt đầu chạy link http://example.org/node.php?install để cài đặt. Sẽ mất ít thời gian để tải và cài đặt nên bạn chiu khó đợi.

                              6. khi cài đặt xong bạn hay mở một tab browser mới và vào trang host của bạn xem nếu nó hiện
                                => Node.js is not yet running.
                                có nghĩa bạn đã cài xong. Giờ bạn tạo một file mới với tên là index.js và có nội dung

                              const express = require('express')
                              const app = express()

                              app.get('/', function (req, res) {
                              res.send('Hello World!')
                              })

                              app.listen(3000, function () {
                              console.log('Example app listening on port 3000!')
                              })

                              => tạo một file có tên là package.json và có nội dung

                              {
                              "name": "test",
                              "version": "1.0.0",
                              "description": "",
                              "main": "index.js",
                              "scripts": {
                              "test": "echo "Error: no test specified" && exit 1"
                              },
                              "author": "",
                              "license": "ISC",
                              "dependencies": {
                              "express": "^4.15.3"
                              }
                              }

                              1. Trong file index.js bạn sẽ thấy chúng ta có sử dụng express nên trc khi chạy index.js bạn phải install express với link

                              http://example.org/node.php?npm=install express

                              và đây cũng là đường link mà bạn sẽ sử dụng nhiều đến để cài đặt những modules mà app của bạn dùng.

                              1. khi cài express xong các bạn khởi động index.js bằng link

                              http://example.org/node.php?start=index.js

                              Vậy là xong. giờ trên trang chính của bạn sẽ hiển thị Hello world!

                              Khoa Lê Duy 1 Reply Last reply Reply Quote 0
                              • Khoa Lê Duy
                                Khoa Lê Duy @Zono4ever last edited by

                                @Zono4ever Cơ bản là cái này không chính thống nên mọi người không ham thôi bạn
                                Và thứ nữa là không phải ai biết node cũng biết đến php và ngược lại.
                                Hơn nữa những người kì cựu ở trên còn không thể tin nổi vào mắt mình thì ai tin
                                Đôi khi sáng tạo nó đến từ những cái rất dở hơi và từ những thằng rất dở hơi 🙂

                                1 Reply Last reply Reply Quote 0
                                • Rikky Le
                                  Rikky Le last edited by Rikky Le

                                  Nói thật là mình không thích rep đâu. Nhưng thôi thì chốt như này nhé:

                                  Cái bạn đang làm là proxy các bash command thông qua PHP để cài đặt/run nodejs. Dùng những từ như trên nền tảng PHP là gây ngứa mắt mấy thằng Chí Phèo kia là đúng cmnr. Thêm nữa cái bạn làm nguy hiểm chả kém gì chơi SQL injection, nói thật là sẽ bị hack cho bục mặt.

                                  Thế nhé. Chào thân ái và quyết thắng

                                  Khoa Lê Duy 1 Reply Last reply Reply Quote 1
                                  • Khoa Lê Duy
                                    Khoa Lê Duy @Rikky Le last edited by

                                    Nói thật mình cũng không muốn phân bua gì
                                    Nhưng code lại hẳn hoi cái repo kia
                                    Chỉ cho chạy exec khi đúng lệnh, check choác các kiểu thì có được không?
                                    Vấn đề là mọi người đưa lên đây tham khảo, có ý đóng góp xây dựng.
                                    Liệu có ai nghĩ javascritp chạy được trên server khi nodejs chưa ra đời?

                                    Php nó phát triển mạnh nên tận dụng được shared host
                                    Đâu phải ai cũng đủ trum để kiếm vps
                                    Mà đã là con nhà nghèo thì hack được cái ghề

                                    1 Reply Last reply Reply Quote 0
                                    • Rikky Le
                                      Rikky Le last edited by

                                      Chả cần phân bua. Bạn có quyền giữ quan điểm của bạn

                                      1 Reply Last reply Reply Quote 0
                                      • Z
                                        Zono4ever last edited by Zono4ever

                                        1. Trời ạ cái này mình cũng ghi là THAM KHẢO chứ mình có bắt các bạn phải dùng đâu.

                                        2. Nếu ko kết nối đc SSH thì dùng file này để bash command, file này nó là php nó ko phải nền để bạn dùng nó để kích hoạt command àh.Mà nhiêu khi kết nối SSH thì chắc gì host của bạn cho cài node để bạn chạy nodejs. Không phải mua VPS thì dùng cái này có chết ai đâu mà sao cứ làng nhàng thế nhỉ.

                                        3. Chịu !!!!

                                        tientoantai 1 Reply Last reply Reply Quote 0
                                        • tientoantai
                                          tientoantai @Zono4ever last edited by

                                          @Zono4ever Mình dùng từ khoe chứ đâu có chê bạn KHOE KHOANG đâu. Ví dụ mình thấy có cái IDE abc gì đó hay ho thì mình khoe vs bạn bè cũng đc vậy.
                                          Còn đây là lý do mình Ko thiện cảm với post này:
                                          1 như @rikky nói.
                                          2 Bạn viết Ko đúng tên công nghệ
                                          3 Khi đọc đến cái đoạn "Không cần load phải load lại trang" thì trong đầu mình kiểu "wtf thanh niên này đang viết gì thế".
                                          Và mình comment lại như vậy.
                                          Thế thôi chứ chả miệt thị gì ai đâu. Vậy nhé.
                                          Thân ái.

                                          1 Reply Last reply Reply Quote 0
                                          • Z
                                            Zono4ever last edited by

                                            @tientoantai khi lập topic này thì tôi nghĩ đến socket cái mà tôi thấy đầu tiên khi tò mò về node. Nên trên đầu topic có nhầm.

                                            Tôi cũng đã viết là mới tìm hiểu về node thôi chứ có vỗ ngực bảo là pro của node đâu mà ông lại chốt câu " đưa thông tin không chính xác". Ít nhiều ông nên hiểu và thông cảm cho những người mới, nhầm lẫn là chắc chắn sẽ có. Đọc cái rep của ông nói ko chính xác này nọ tôi đã thấy ông kiểu kinh kỉnh người khác. Nghĩ mình là ai!!!!.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post
                                            $(document).ready(function () { app.coldLoad(); }); }