찾다

 >  Q&A  >  본문

前端 - 想用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这些问题,有点困惑。

大家讲道理大家讲道理2788일 전693

모든 응답(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
  • 취소회신하다