摘要:中間層搭建前端項(xiàng)目創(chuàng)建路由文件名稱以及路徑獲取路由中間件來(lái)處理異常監(jiān)聽的錯(cuò)誤事件模板輔助方法創(chuàng)建文件路徑這里的點(diǎn)主要有兩方面請(qǐng)求中間件流程控制中間件,有興趣可以自行讀取的引入全局變量全局變量文件路徑全局變量本地創(chuàng)建文件文件路徑以上接口
express中間層搭建前端項(xiàng)目2
創(chuàng)建路由文件名稱以及路徑 routes/index.js
//獲取路由中間件 var getMoreMethod = require("../method_routes/getMore-method").getMoreMethod; module.exports = function(app, domain) { //domain來(lái)處理異常 app.use(function(req, res, next) { var d = domain.create(); //監(jiān)聽domain的錯(cuò)誤事件 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); }創(chuàng)建getMore-method
文件路徑method_routes/getMore-method.js
這里的點(diǎn)主要有兩方面1.async 2.request
var request = require("request");//nodejs請(qǐng)求中間件 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/"http://本地ip }創(chuàng)建ejs文件
文件路徑 views/getMore.ejs
getMore <%for(var i in first){ %> <%if(i == "img"){%><%}else{%>
<%= first[i] %><%}%> <%}%>
以上接口都是自行搭建mock數(shù)據(jù),github地址node_api
搭建express項(xiàng)目已經(jīng)差不多,歡迎大佬一起討論
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/95704.html
摘要:上面一片文章已經(jīng)介紹怎樣創(chuàng)建服務(wù)端服務(wù),這篇將搭建路由第一章搭建服務(wù)配置引入相關(guān)中間件文件讀取壓縮處理異常設(shè)置模板引擎使用相關(guān)中間件日志請(qǐng)求體解析中間對(duì)傳入的進(jìn)行解析后賦值給引入文件里面的靜態(tài)資源包括引入路由文件路由文件讀取抓取錯(cuò)誤信 上面一片文章已經(jīng)介紹怎樣創(chuàng)建nodejs服務(wù)端服務(wù),這篇將express搭建路由第一章搭建nodejs服務(wù) 配置app.js引入相關(guān)中間件 var ex...
摘要:從前端小白到精通首先需要自行下載安裝安裝地址我的版本是,安裝之后,需要安裝依賴以及生成調(diào)試工具,親測(cè)對(duì)版本比較敏感,只兼容低版本的所以調(diào)試可以用或者用軟件進(jìn)行調(diào)試安裝調(diào)試鏈接,下載包,忘記了模板引擎用的是,喜歡用其實(shí)一樣,只是語(yǔ)法有 從前端小白到精通express 首先需要自行下載安裝nodejs nodejs安裝地址//我的版本是4.7.0, 安裝nodejs之后,需要npm in...
摘要:項(xiàng)目地址腳手架使用過,的同學(xué)都清楚,官方推薦的安裝方式是通過專用的來(lái)快速搭建一個(gè)由編譯打包的項(xiàng)目框架。用在層的模塊化,在中間層實(shí)現(xiàn)了模塊化。這樣,從中間層到前端都實(shí)現(xiàn)了熱加載。 版權(quán)聲明:更多文章請(qǐng)?jiān)L問我的個(gè)人站Keyon Y,轉(zhuǎn)載請(qǐng)注明出處。 項(xiàng)目地址:https://github.com/KeyonY/NodeMiddle 腳手架? 使用過angular2,vue2的同學(xué)都清楚,官...
摘要:指定需要處理的路由回調(diào)函數(shù),即請(qǐng)求此路由的處理函數(shù),它可以接收兩個(gè)參數(shù)三個(gè)參數(shù),四個(gè)參數(shù)。如果匹配到自定義的路由,立即執(zhí)行回調(diào)函數(shù),如果處理函數(shù)中沒有則不再往下執(zhí)行,如果執(zhí)行了會(huì)繼續(xù)向下匹配。 簡(jiǎn)介 Node.js? is a JavaScript runtime built on Chromes V8 JavaScript engine. Node.js uses an event-...
摘要:的最后一個(gè)大招就是替換一些傳統(tǒng)的服務(wù)端語(yǔ)言,例如,,等,在業(yè)務(wù)層上面使用來(lái)開發(fā)服務(wù)端完全不成問題。更多的的使用細(xì)節(jié)和技巧建議關(guān)注美團(tuán)博客大搜車論壇下一篇我們開啟如何結(jié)合和搭建一個(gè)開發(fā)環(huán)境和項(xiàng)目目錄 往期回顧 前面2期都講得是瀏覽器端的東西比較多,包括Webpack,雖然是Node處理的,但是還是瀏覽器端用的多,對(duì)于現(xiàn)在的前端開發(fā)來(lái)說,不懂一點(diǎn)服務(wù)端的東西,簡(jiǎn)直沒辦法活,一般的招聘要求都...
閱讀 3561·2021-10-18 13:33
閱讀 889·2019-08-30 14:20
閱讀 2682·2019-08-30 13:14
閱讀 2574·2019-08-29 18:38
閱讀 2938·2019-08-29 16:44
閱讀 1257·2019-08-29 15:23
閱讀 3587·2019-08-29 13:28
閱讀 1968·2019-08-28 18:00