搜尋

首頁  >  問答  >  主體

前端 - 想用nodejs建一个个人博客网站,遇到挺多问题和疑惑,希望得到大神的解答,不求全面

  1. express 相对于直接用 nodejs 建站的好处在哪?

  2. express 用的是 jade 格式的模板,可以直接用 html 文件吗?

  3. jade 位于 express 项目的 views 文件夹下,为什么看到其他地方的人回答:“要是用 html 代替 jade,要放在 public 文件夹,但是页面就变成静态的了”,静态网页与动态网页的区别?

  4. 使用 nodejs 的互联网公司,也是用 express 框架吗?也是用的 jade 吗?

  5. 一般什么情况下用静态网页,什么情况下用动态网页?

  6. 个人博客需要数据库吗?只是在上面写一些文章附带一些图片,如果用使用 mongodb 还是 MySQL


2016/5/31 22:49 增加的:
7.写博客直接在html文档里写?还是用innerHtml()?还是用其他方法?

会用html html5 css css3 javascript jquery。nodejs本地实验过,不过不真正在服务器上跑起来感觉离会还很远呀,比较新的网上盛传的nodejs学习文档基本看过一遍。最近自己利用fanqiang的vps主机简单搭了一个express,远程访问成功了。博客雏形早就写好了,用的标准html+css+javascript+jquery切页面,本来想直接用nodejs启个服务,但是看到网上基本都是express做的,很少直接用nodejs。于是打算把做的雏形和express结合。又遇到jade、ejs这些问题,有点困惑。

大家讲道理大家讲道理2796 天前706

全部回覆(11)我來回復

  • ringa_lee

    ringa_lee2017-04-17 13:57:54

    1. 就是不用自己考慮那麼多了。路由之類,建議用框架吧

    2. 可以,可以看看swig

    3. 這個不影響,說到底只是模板引擎,還是node渲染的頁面,簡單來講就是靜態網頁就是訪問一個已經存在的文件。動態就是動態渲染,像是從資料庫讀取資料渲染之類。

    4. 不是很了解,不過估計用的不少吧

    5. 展示性質,很久都不會改變的。例如h5頁面之類(展示),看需求吧,blog如果是hexo之類就是靜態,類似wordpress就是動態,看你需求

    6. 上述的hexo就是靜態,簡單來說,node渲染資料產生html檔案託管到pages之類的地方,還是看需求。兩種方式都能實現。 mongodb和mysql感覺都行吧。不影響,主要還是看你做的東西

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 13:57:54

    「你的問題主要是程式碼寫得不多而想太多」—阿爾伯特·愛因斯坦

    1. 框架的作用通常都是對一些通用功能做簡化,為使用者節省時間和對細節處處的親力親為

    2. Express 可以用 Jade、EJS、Swig、Handlebar 等等 HTML 模版

    3. 堅決抵制包括但不限於產品經理、設計師、老闆等人對程式設計師喜歡把文件放在哪裡的干涉

    4. 有的用

    5. 可以用也可以不用。可以用 MongoDB 也可以用 MySQL

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 13:57:54

    用node建部落格(其他語言也是一樣的)有以下方式:

    1、最原始的方式:不適用任何框架,就是說連express也不用。完全刀耕火種。
    2、較原始的方式:使用框架,但是還需要自己編碼。一個一個的頁面你不得自己寫啊?

    如果你是練手、學技術,可以用上面兩種,否則建議用下面的高級方式

    3、進階方式:使用成熟的部落格框架。不用寫任何程式碼。只寫部落格內容,然後發布就行了。推薦一個node部落格框架https://github.com/hexojs/hexo

    這是本人的部落格:http://www.liyanshan.com/

    完全靜態的。 。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 13:57:54

    1.express是基於nodejs的http模組的,抽象層次更高了,工程資源管理方式目前有許多成熟的實例。好不好,不能一言蔽之,對於不同技術層次人的使用體驗是不同的。
    2.express可以指定模板,官方文件進行了詳細的說明,詳見
    http://www.expressjs.com.cn/guide/using-template-engines.html
    3.靜態網頁和動態網頁在於使用時是否能和伺服器端進行資料互動。
    4.網路公司使用什麼框架看需求,不是非express不可,restify,koa也是可能的,自己根據自己需求造一個輪子也是有可能的。
    5.前端和後端有大量資料互動的時候,使用動態網頁。個人部落格對動態網頁的需求就不是剛需。
    6.個人博客,一般而言靜態頁面足矣。你寫寫文章,帶點圖片,使用資料庫就是彈性需求了。

    7.不知道你個人知識儲備有多少?例如,電腦網路方面的http協定的相關知識、nodejs模組的http模組、對NoSQL和SQL了解多少。
    8.你的個人部落格網站,是從視覺設計,UI互動設計,再到前端程式碼,再到後端程式碼再到資料庫設計都是自己搞定?還是前端用框架,後端也用框架,視覺設計重複用別人的設計?
    9.個人部落格網站的建構,可以使用成熟的CMS,例如wordpress。或GEEK一點,使用GitHub Pages + Hexo(Jekyll)
    10.本人博客完全靜態:sky111144.github.io,基於GitHub Pages + Hexo

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:57:54

    用express相對於直接用nodejs建站的好處在哪

    使用框架的好處在於“快速”,因為具體項目中可能遇到的問題,大部分情況框架都已經考慮到了。譬如:expressmiddleware設計,使得記公共日誌,全域錯誤處理、cache control、鑑權都可以輕鬆達成。

    express用的是jade格式的模板,可以直接用html檔嗎?

    抱歉了jade是一種簡寫語法,不能在裡面直接寫html。如果你想直接寫html文法,試試把模版引擎換成ejs。參考文檔using-template-engine

    jade位於express專案的views資料夾下,為什麼看到其他地方的人回答:“要是用html代替jade,要放在public資料夾,但是頁面就變成靜態的了”,靜態網頁與動態網頁的差別?

    的確,靜態檔案通常直接放在public目錄下。通俗來說,靜態網頁所有人看到都是同樣的;但動態網頁可以根據看的人的不同做不同內容的展示;也可以使用同一個模板透過注入不同的變量,給用戶提供多重閱讀。譬如:超級管理員、普通管理員、一般使用者在看同一個頁面的時候,看到的內容一定不同。

    使用nodejs的網路公司,也是用express框架嗎?也是用的jade嗎?

    express框架確實因為其簡單易用,使用者眾多。但絕不是唯一,其他知名框架還有:koa,toa。 。 。其實很多啦!

    是不是都用jade可不好說,個人認為用ejs的也不在少數

    一般什麼情況下用靜態網頁,什麼情況下用動態網頁?

    通常公司的首頁(就是介紹介紹公司業務,展示展示老闆風采)的頁面,就是靜態的,因為不需要“根據看的人調整內容”,“也不需要同一模板適配不同內容”。其餘情況,動態居多。譬如:segmentfault的「文章」欄目,那就是一個模板,但是每篇文章點進去都是該文章的內容,而不是篇篇文章都一個樣子。

    個人部落格需要資料庫嗎?只是在上面寫一些文章附帶一些圖片,如果用使用mongodb還是MySQL?

    真心沒必要,有githubcoding這些網站,都可以託管個人部落格。我之前寫過一個小教學在Github上搭部落格

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 13:57:54

    作為在網路公司打過一個月醬油目前找不到實習的半吊子我來強行回答一下

    用 express 相對於直接用 nodejs 建站的好處在哪?

    簡化程式碼,省略了很多(其實也不多)東西

    express 用的是 jade 格式的模板,可以直接用 html 檔案嗎?

    express支援很多引擎,jade只是其中之一,而且html也是其中之一(原來有,現在不知道)

    jade 位於express 專案的views 資料夾下,為什麼看到其他地方的人回答:“要是用html 代替jade,要放在public 資料夾,但是頁面就變成靜態的了”,靜態網頁與動態網頁的差別?

    關於靜態和動態可以參考我瞎扯的一篇博文,由於我不是專業的所以裡面會有很多錯誤,大概看個意思就行了
    public資料夾下的靜態檔案不會改變,view下的模版會根據渲染時的傳進來的資料不同顯示出不同的頁面(比如segmentfault的主頁)

    使用 nodejs 的網路公司,也是用 express 框架嗎?也是用的 jade 嗎?

    可以是express
    我之前打醬油的公司是express+ejs,還有rest架構的express+JSON+angularjs

    一般什麼情況下用靜態網頁,什麼情況下用動態網頁?

    一般來說長期不用改動的使用靜態網頁(因為節省資源),經常變動的使用動態
    實際上怎麼用隨便你

    個人部落格需要資料庫嗎?只是在上面寫一些文章附帶一些圖片,如果用使用 mongodb 還是 MySQL?

    需要,也不需要,資料庫只是一種選擇。
    典型的使用資料庫的部落格有wordpress,不用資料庫的有hexo
    靜態的不能用資料庫
    mongodbmysql的選擇其實並不重要,看心情和熟練程度就好了

    寫部落格直接在html文檔裡寫?還是用innerHtml()?還是用其他方法?

    類似wordpress這樣的動態部落格的書寫方法和在segmentfault上發貼差不多,在一個輸入框裡寫完提交
    類似hexo的是在自己的編輯器裡寫好markdown文件,再由hexo將其轉換成html

    至於伺服器端的渲染,大概類似產生一整塊的html,其中規定的位置為你自訂的內容,例如在路由裡這麼渲染模版

    //route
    res.render("hello.html", {
        var: "Hello"
      });
    <!-- hello.html -->
    <h1>{{ var }}</h1>

    那麼客戶端得到的將是這麼一段HTML

    <h1>Hello</h1>

    最後附一個我的部落格
    還有一個我正在開(瞎)發(搞)的的部落格

    對了,求在成都的暑假實習求帶走_(:3)JL)_

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 13:57:54

    其實hexo也是夠用的,用Markdown寫部落格其實很方便快速

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 13:57:54

    1,express有強大的路由功能,豐富的資料處理。可以給你免去很多煩惱
    2,可以的,後綴無所謂,但是要在模板配置裡面改相應的參數
    3,public資料夾是express預設的靜態資源處理資料夾。你也可以換成其他的,這裡面都是靜態資源。動態網頁是程式根據回應,從資料庫取資料過後產生的頁面
    4,各公司有各公司的業務邏輯。
    5,不好回答,並非所有的頁面都是動態的,你也可以動態產生靜態頁面。
    6,個人博客,如果資料不多,你完全可以用json充當資料庫。 MySQL和MongoDB差別有很多。資料庫選用看你的業務邏輯

    回覆
    0
  • 阿神

    阿神2017-04-17 13:57:54

    打個擦邊球,個人看法,比較片面。
    先整理你的第一個目標是什麼?

    是寫blog,則專心寫作上。 有很多人都是為了搞個人網站寫blog,結果搞著搞著時間全花在code上,blog就寫了幾篇。 而現成的blog工具已經很多了。 有帶server的(要有機器),有純靜態的(送到github即可),個人比較偏向第二種。 推薦個工具MWeb 。

    是學code,則腳踏實地買幾本數啃,nodejs的書現在很豐富了。 找到個框架,只要有那麼個量級都是不錯的,先用起來,畢竟用過了才知道具體的好壞(因人而異的,不是麼?)
    保守就express,自己搭太累,先入個門在深入。 激進的就koa,思想很好的框架,沒兩把刷子別用。
    同理用ejs,沒兩把刷子別用jade

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 13:57:54

    1. 框架可以省代碼。但node由於自備http模組,能省的程式碼十分有限,這個需要你自己取捨。你手動取req的querystring自建路由表也沒什麼不可以。
      但是模板引擎是完全不能省的,你自己拼接html就會出現各種安全隱憂。

    2. 可以用app.engine定義模板引擎,res.render渲染。也可以繞過res.render,直接呼叫引擎。 html的話,可以直接用fs讀取並刷給res吧。

    3. 目錄無所謂,都是可設定的。 express的模板模組可以用後綴區分模板,也不會混。靜態頁面沒有輸入而且輸出為定值。

    4. 估計也有不用框架的。模板引擎在社群主流的選擇是ejs。

    5. 需要。選擇rdbms或nosql看你個人喜好。一般來說nosql寫起來簡單維護困難。

    6. 對於UI或互動上的任何問題,請參考wordpress和typecho。

    回覆
    0
  • 取消回覆