express中間層搭建前端項目3

express中間層搭建前端項目2

建立路由

文件名稱以及途徑 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項目已差不多,迎接大佬一同議論

    原文作者:如果美是罪
    原文地址: https://segmentfault.com/a/1190000015395702
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞