Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将nodej包含到Ionic中_Javascript_Node.js_Express_Ionic Framework - Fatal编程技术网

Javascript 将nodej包含到Ionic中

Javascript 将nodej包含到Ionic中,javascript,node.js,express,ionic-framework,Javascript,Node.js,Express,Ionic Framework,我用Ionic构建了一个混合应用程序。 目前我使用PHP和MySQL作为后端。 正如我告诉自己的那样,这是一种非常古老的风格,新的方式是使用expressJS和MongoDB的NodeJS。 不幸的是,关于如何构建一个MEAN应用程序(MongoDB、ExpressJS、AngularJS和NodeJs)有成千上万的教程。 这对我帮助不大,因为我不知道如何将NodeJS集成到我现有的Ionic应用程序中。 我只能通过将POST请求更改为新的NodeJS服务器而不是PHP脚本来连接它们吗 我看到了

我用Ionic构建了一个混合应用程序。 目前我使用PHP和MySQL作为后端。 正如我告诉自己的那样,这是一种非常古老的风格,新的方式是使用expressJS和MongoDB的NodeJS。 不幸的是,关于如何构建一个MEAN应用程序(MongoDB、ExpressJS、AngularJS和NodeJs)有成千上万的教程。 这对我帮助不大,因为我不知道如何将NodeJS集成到我现有的Ionic应用程序中。 我只能通过将POST请求更改为新的NodeJS服务器而不是PHP脚本来连接它们吗

我看到了一些很酷的方法,其中NodeJS的路由直接与应用程序连接。 这怎么可能

例如,如果我导航到www.testapp.com/test

app.get('/test', function (req, res) {
  console.log('Hello World!')
})
我想举个例子。 这怎么可能与离子液体相结合呢

非常感谢。

因为您可以使用它(Node.js的快速、无偏见、最低限度的web框架)

1.)安装Express

$ npm install express --save
2.)创建简单的API。把它放到server.js中

var express = require('express')
var app = express()

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

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})
如果您使用MySQL(),那么使用这个

    var express = require('express')
    var mysql    = require('mysql')
    var app = express()

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


       var pool = mysql.createPool({
            host: 'localhost',
            user: '',
            password: '',
            database: ''
        }); 

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

  app.get('/partners', function(req, res,next){

  pool.getConnection(function(err, connection) {

        if (err) {
            console.error("An error occurred: " + err);
        }

       var query = "SELECT * FROM partners ORDER BY idpartner DESC";

        var table = ["tableName"];

        query = mysql.format(query,table);

        connection.query(query,function(err,rows){

            if (err) {               
               return next(err);
            } else {
                res.json({
                    success: true,
                    partners : rows
                });
            }
            connection.release();
        });
    });
});
3.)使用CMD或Git Bash运行API

$ node server.js
4.)直接在web浏览器中测试API或(加速API工作流程。更快地构建、测试和记录API)

访问
http://localhost:3000/test
http://localhost:3000/partners

5.)在爱奥尼亚应用程序中使用API

 $scope.getPartners = function() {
        $http.get("http://localhost:3000/partners", { params: { "key1": "value1", "key2": "value2" } })
            .success(function(response) {
                $scope.firstname = response.firstname;
                $scope.lastname = response.lastname;
            })
            .error(function(response) {
                alert("ERROR");
            });
    }

我相信您可以执行该操作,只需作为RESTAPI调用即可。因此,您可以保持nodeJS实例作为后端运行,并且ionic可以访问该实例。非常感谢您提供了非常详细的答案。我只剩下一个问题了。我如何将应用程序与NodeJS服务器连接起来,以便假设用户正在与/partners进行nagivgating,服务器将自动执行appropiate功能。。。你知道我的意思吗?我是否必须在运行服务器的同一端口上执行应用程序才能将它们连接起来?@Anokrize每个URL如下
http://localhost:3000/partners
是一种API,可以在从网站到混合移动应用程序的任何地方使用。生产中使用的API需要在web服务器上(
pm2 start server.js
),例如
http://192.168.0.111:3000/partners
然后每个人都可以使用它。服务器和应用程序是完全独立的,唯一的连接方式是通过来自Ionic控制器的GET、PUT、POST和DELETE请求。运行时,服务器将通过
$http.get
$http.put
$http.post
$http.delete
不断侦听您的应用程序请求。