Vue頁面部署在Node Koa服務器 Data 數(shù)據(jù)無法顯示

摘要: 一個Vue頁面部署在Node Koa服務器上开呐,在html里無法顯示vue data的數(shù)據(jù), 接下來我會演示從發(fā)現(xiàn)問題 > 排查問題 > 解決問題的過程。如果只想知道如何解決問題,直接看解決問題板塊
關鍵字: Node Vue 無法顯示數(shù)據(jù)

問題描述

一個Vue頁面部署在Node Koa服務器上廉嚼,在html里無法顯示vue data的數(shù)據(jù), 但是用瀏覽器直接打開是可以的
重現(xiàn)代碼
npm init -y; npm koa nunjucks

// 目錄結構
app.js
index.html
<!-- index.html -->
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link  rel="stylesheet">
</head>
<body>
    <div id="app">
        <h1>{{msg}}</h1>
    </div>

    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/element-ui/2.13.2/index.js"></script>
    <script>
        (function() {
            let vm = new Vue({
                el: "#app",
                data() {
                    return {
                        msg: 'Hello'
                    }
                }
            })
        }())
    </script>
</body>
</html>
// app.js
const Koa = require('koa')
const app = new Koa()
const nunjucks = require('nunjucks');

app.use(async (ctx, next) => {
    if (ctx.url == "/") {
        ctx.response.set('Content-Type', "text/html")
        ctx.response.body = nunjucks.render("index.html")
    }
    await next();
});
app.listen(3000);
console.log('app started at port 3000...');

node app.js

排查問題

  • 運行環(huán)境不同
    直接用瀏覽器打開可以顯示data里的數(shù)據(jù),在服務器上不行。所以我換了一個用Phpstudy搭建的PHP服務器, 部署在上面后訪問頁面堡牡,data里的數(shù)據(jù)可以顯示。這時候可以斷定是Node那邊的問題了
  • 服務器返回文件的方式
    這時候杨刨,我沒有想過要換一個服務器中間件晤柄,如express。因為我看到返回文件用的是nunjucks.render, 我在想會不會是因為這個原因妖胀。于是我換成了Node內置的fs模塊, 問題就解決了
    if (ctx.url == "/") {
        ctx.response.set('Content-Type', "text/html")
        // ctx.response.body = nunjucks.render("index.html")
        ctx.response.body = fs.createReadStream("index.html")
    }
    

解決方案

  1. 頁面使用<script>引入Vue.js 且用nunjucks返回文件的芥颈,可以考慮將nunjucks.render 換成 fs.createReadStream
  2. 排查問題策略
flowchat
st=>start: 遇到問題
op1=>operation: 找出與成功例子的不同之處
op2=>operation: 根據(jù)不同之處進行測試,縮小范圍
op3=>operation: 導致這個問題的發(fā)生赚抡,可能有哪些因素爬坑。在范圍尋找這些因素
e=>end: 結束



st->op1->op2->op3

參考資料

《調試九法——軟硬件錯誤的排查之道》

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市涂臣,隨后出現(xiàn)的幾起案子盾计,更是在濱河造成了極大的恐慌,老刑警劉巖赁遗,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件署辉,死亡現(xiàn)場離奇詭異,居然都是意外死亡岩四,警方通過查閱死者的電腦和手機哭尝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剖煌,“玉大人刚夺,你說我怎么就攤上這事献丑。” “怎么了侠姑?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵创橄,是天一觀的道長。 經常有香客問我莽红,道長妥畏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任安吁,我火速辦了婚禮醉蚁,結果婚禮上,老公的妹妹穿的比我還像新娘鬼店。我一直安慰自己网棍,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布妇智。 她就那樣靜靜地躺著滥玷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巍棱。 梳的紋絲不亂的頭發(fā)上惑畴,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音航徙,去河邊找鬼如贷。 笑死,一個胖子當著我的面吹牛到踏,可吹牛的內容都是我干的杠袱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼窝稿,長吁一口氣:“原來是場噩夢啊……” “哼霞掺!你這毒婦竟也來了?” 一聲冷哼從身側響起讹躯,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤菩彬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后潮梯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骗灶,經...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年秉馏,在試婚紗的時候發(fā)現(xiàn)自己被綠了耙旦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡萝究,死狀恐怖免都,靈堂內的尸體忽然破棺而出锉罐,到底是詐尸還是另有隱情,我是刑警寧澤绕娘,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布脓规,位于F島的核電站,受9級特大地震影響险领,放射性物質發(fā)生泄漏侨舆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一绢陌、第九天 我趴在偏房一處隱蔽的房頂上張望挨下。 院中可真熱鬧,春花似錦脐湾、人聲如沸臭笆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愁铺。三九已至,卻和暖如春机杜,著一層夾襖步出監(jiān)牢的瞬間帜讲,已是汗流浹背衅谷。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工椒拗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人获黔。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓蚀苛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親玷氏。 傳聞我的和親對象是個殘疾皇子堵未,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345