Projek ingin menggunakan nod sebagai lapisan tengah
Pelayar lapisan pertama menghantar permintaan ke nod
Nod lapisan kedua menghantar permintaan ke php
Saya tahu sedikit tentang nod dan rangka kerja meminta untuk php untuk mendapatkan data dan mengembalikannya ke meja depan? Adakah terdapat kaedah yang mudah dan mudah difahami.
Saya boleh mendapatkan data selepas menggunakan http-proxy-middleware
, tetapi saya mahu memadankan laluan dan kemudian menghantar permintaan ke latar belakang untuk memaparkan templat 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');
});
Pelanggan
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);
}
})
Node mempunyai pelbagai perpustakaan permintaan. Terdapat juga permintaan yang datang bersamanya
Seluruh proses mungkin
Pelanggan meminta pelayan nod
Pelayan nod meminta php dan kemudian membungkus data respons yang dikembalikan
Kembalikan data berpakej di atas kepada pelanggan
Apa yang anda perlu beri perhatian ialah mengendalikan panggilan balik Jika anda ingin kelihatan lebih baik, anda boleh menggunakan modul promise atau co untuk mengendalikan kod tak segerak.
Terdapat pelbagai penyelesaian untuk ini, izinkan saya bercakap tentang yang kami gunakan
node-rest-client
比如使用express,自己写个路由,如果
/ajax
Ia digunakan untuk menerima permintaan bahagian hadapanSemua permintaan bahagian hadapan dihantar ke /ajax, dan kemudian dalam /ajax, gunakan node-rest- pelanggan untuk memajukan permintaan ke php, selepas php mengembalikan data, res.json(data) sudah cukup
Sudah tentu, anda perlu merangkum dan menyatukan data sendiri semasa proses ini macam ni
http-proxy-middleware
Jika ia hanya dimajukan melalui proksi,
Jika lapisan tengah tidak merangkum sebarang data, anda boleh menggunakan perisian tengah ini:
https://github.com/chimurai/h...
Biasanya, nod digunakan untuk enkapsulasi data Lapisan API tidak mengambil berat tentang perniagaan, jadi ia boleh dipisahkan
Kemudian anda perlu membuat pelbagai antara muka secara berasingan, dapatkan data, susun semula sendiri menggunakan lodash dan moment, dan hantar ke meja depan,