javascript - Comment le nœud demande à d'autres serveurs.
迷茫
迷茫 2017-06-29 10:08:40
0
4
839

Le projet veut utiliser le nœud comme couche intermédiaire.
Le navigateur de la première couche envoie une requête au nœud.
Le nœud de la deuxième couche envoie une requête à php.
Je connais un peu le nœud et le framework express. demander à php d'obtenir les données et de les renvoyer à la réception ? Existe-t-il une méthode simple et facile à comprendre.

Je peux obtenir les données après avoir utilisé http-proxy-middleware, mais je souhaite faire correspondre l'itinéraire, puis envoyer la demande en arrière-plan pour restituer le modèle ejs.

const apiProxy = proxy('/do', { target: 'http://wx.lxjjz.cn',changeOrigin: true });//将服务器代理到localhost:8080端口上[本地服务器为localhost:3000]
app.use('*', apiProxy);//子目录下的都是用代理
 
app.get('/index', function(req,res){
     //我想在这里匹配到路由,然后在这里发送请求拿数据
     //然后根据返回的数据传送到ejs模版渲染
     res.sendFile(__dirname+'/index.html');
});
 

Client

var contextPath = 'http://wx.lxjjz.cn';
                $.ajax({
                    type:'get',
                    url:contextPath+'/do?g=api&m=hd&a=works-list',
                    success:function(data){
                        console.log(data);
                    },
                    error:function(data){
                        console.log(data);
                    }
 
                })
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(4)
滿天的星座

Node dispose de diverses bibliothèques de requêtes. Il y a aussi des demandes qui vont avec

L'ensemble du processus est probablement

  1. Le client demande le serveur de nœuds

  2. Le serveur de nœud demande php puis conditionne les données de réponse renvoyées

  3. Renvoyer les données packagées ci-dessus au client

Ce à quoi vous devez faire attention, c'est à la gestion du rappel. Si vous voulez avoir une meilleure apparence, vous pouvez utiliser le module promise ou co pour gérer le code asynchrone.

迷茫

Il existe différentes solutions à cela, permettez-moi juste de parler de celle que nous utilisonsnode-rest-client
比如使用express,自己写个路由,如果/ajaxElle est utilisée pour accepter les requêtes frontales
Toutes les requêtes frontales sont envoyées à /ajax, puis dans /ajax, utilisez node-rest- client pour transmettre la demande à php, une fois que php a renvoyé les données, res.json(data) suffit
Bien sûr, vous devez encapsuler et unifier les données vous-même pendant ce processus. C'est une question triviale. comme ça

刘奇

http-proxy-middleware

Ty80

S'il s'agit simplement d'un transfert par proxy,

Si la couche intermédiaire n'encapsule aucune donnée, vous pouvez utiliser ce middleware :

https://github.com/chimurai/h...

Normalement, les nœuds sont utilisés pour l'encapsulation des données. La couche API ne se soucie pas du business, elle peut donc être découplée

.

Ensuite, vous devez créer différentes interfaces séparément, récupérer les données, les réorganiser vous-même à l'aide de lodash et moment, et les envoyer à la réception,

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal