本文实例为大家分享了Nodejs get获取远程服务器接口数据的具体代码,供大家参考,具体内容如下
1.GET模块:_get.js
/** * Created by jinx on 7/7/17. */var http = require('http');module.exports = { /** * 测试获取所有的区域 * / locations: function (cb) { http.get('http://wx.xx.com/locations', function (res) { res.setEncoding('utf8'); var rawData = ''; res.on('data', function (chunk) { rawData += chunk; }); res.on('end', function () { try { const parsedData = JSON.parse(rawData); console.log(parsedData); cb(parsedData); } catch (e) { console.error(e.message); cb('error'); } }); }); }}
2.路由端调用:routes.js
var _get = require('../modules/_get');module.exports = function (app, _dirpath) { app.get('/get', function (req, res) { _get.locations(function (data) { res.writeHead(200, {"Content-Type": "application/json"}); res.write(JSON.stringify(data)); res.end(); }); });}
3.服务启动入口:
/** * Created by jinx on 7/3/17. */var express = require('express') , routes = require('./routes/routes') , http = require('http');var app = express();app.set('port', process.env.PORT || 3000);app.set('views', __dirname + '/views');app.set('view engine', 'ejs');/** * 静态文件目录 */app.use(express.static('public'));/** * 加载路由配置 */routes(app,__dirname);/** * 启动服务器 */http.createServer(app).listen(app.get('port'), function(){ console.log("服务器已经启动了" + app.get('port'));});
4.项目目录如下:
5.调用js get.js:
/** * Created by jinx on 7/7/17. */var _i;$(function () { _i = layer.open({type: 2}); $.ajax({ url: '/get', type: 'get', dataType: 'json', success: function (res) { if (res != null) layer.close(_i); new Vue({ el: '.main', data: {items: res.params} }); } })})
6.调用页面 get.html:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>http get</title> <link href="https://cdn.bootcss.com/layer/3.0.1/mobile/need/layer.min.css" rel="external nofollow" rel="stylesheet"> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="external nofollow" rel="stylesheet"> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet"> <link href="css/style.css" rel="external nofollow" rel="stylesheet"></head><body><table class="table main"> <thead> <tr> <td>ID</td> <td>Name</td> </tr> </thead> <tbody> <tr v-for="item in items" > <td v-text="item.id"></td> <td v-text="item.name"></td> </tr> </tbody></table><a href="/" rel="external nofollow" class="btn btn-info width-100">返回首页</a><script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><script src="https://cdn.bootcss.com/layer/3.0.1/mobile/layer.js"></script><script src="https://cdn.bootcss.com/vue/2.3.4/vue.min.js"></script><script src="js/get.js"></script></body></html>
新闻热点
疑难解答