建立路由
檔名稱以及路徑 routes/index.js
//獲取路由中介軟體
var getMoreMethod = require(`../method_routes/getMore-method`).getMoreMethod;
module.exports = function(app, domain) {
//domain來處理異常
app.use(function(req, res, next) {
var d = domain.create();
//監聽domain的錯誤事件
d.on(`error`, function(err) {
// res.statusCode = 500;
res.statusCode = 404;
res.render(`htmlerror`);
d.dispose();
});
d.add(req);
d.add(res);
d.run(next);
});
//模板輔助方法
//app.use(require(`../ejs_fun/index`));
app.get(`/index`,getMoreMethod);
}
建立getMore-method
檔案路徑method_routes/getMore-method.js
這裡的點主要有兩方面1.async 2.request
var request = require(`request`);//nodejs請求中介軟體
var async = require(`async`);//流程控制中介軟體,有興趣可以自行讀取async的api
//引入全域性變數
require(`../config/config`);
exports.getMoreMethod = function(req,res,next){
async.waterfall([
function(callback) {
var data = {};
request.get({url:Config.url+"api/4", formData: {}}, function(err, res, body) {
if (err) {
console.error(`failed:`, err);
callback && callback(err);
}else{
data.f = JSON.parse(body);
callback(null, data);
}
});
},
function(data, callback) {
request.get({url:Config.url+"api/test2", formData: {}}, function(err, httpResponse, body) {
if (err) {
console.error(`failed:`, err);
callback && callback(err);
}else{
data.t = JSON.parse(body);
callback(null, data);
}
});
},
function(data, callback) {
request.get({url:Config.url+"test/pos", formData: {}}, function(err, res, body) {
if (err) {
console.error(`failed:`, err);
callback && callback(err);
}else{
data.p = JSON.parse(body);
callback(null, data);
}
});
}
], function(err, result) {
res.render("getMore", {
"result": result,
"first":result.f,
"two":result.t,
"three":result.p
});
});
}
全域性變數
檔案路徑config/config
//全域性變數
global.Config = {
url:`http://192.168.43.201:3009/`//本地ip
}
建立ejs檔案
檔案路徑 views/getMore.ejs
<!DOCTYPE html>
<html>
<head>
<title>getMore</title>
</head>
<body>
<div class="container">
<%for(var i in first){ %>
<%if(i == `img`){%>
<img src="<%= first[i] %>" alt="">
<%}else{%>
<div><%= first[i] %></div>
<%}%>
<%}%>
</div>
</body>
</html>
以上介面都是自行搭建mock資料,github地址node_api
搭建express專案已經差不多,歡迎大佬一起討論