NodeJS入门 0x7 NodeWeb程序(4)添加用户界面

添加用户界面 

    给 Express 项目添加界面需要做几件事。首先是使用模板引擎。程序还需要服务静态文件,比如 CSS。在渲染模板和编写 CSS之前,还需要了解,如何在必要时让前面例子中的路由处理器同时支持 JSON 和 HTML 响应。

    支持多种格式

        Express 的 res.format 方法

app.get('/articles',(req,res,next)=>{//获取所有文章
    Article.all((err,articles)=>{
        if(err) return next(err);
        res.format({
            html:()=>{
                res.render('articles.ejs',{articles:articles});
            },
            json:()=>{
                res.send(articles)
            }
        });
    });
});

    渲染模板

        安装 EJS 模块

npm install ejs --save

        创建模板 articles.ejs

views/articles.ejs

<% include head %>
<ul>
    <% articles.forEach((article)=>{%>
        <li>
            <a href="/articles/<%= article.id %>">
                <%= article.title %>
            </a>
        </li>
    <%})%>
</ul>
<% include foot%>

 views/head.ejs

<html>
    <head>
        <title>Later</title>
    </head>
    <body>
        <div class="container">

 views/foot.ejs

        </div>
    </body>
</html>

        用 npm 管理客户端依赖项

    不用自己创建样式,重用已有的样式会更简单,甚至这也能用 npm 来做!热门的 Bootstrap 客户端框架也在 npm 上,把它加到项目中

npm install bootstrap --save

         响应静态文件请求

    Express 自带了一个名为 express.static 的中间件,可以给浏览器发送客户端 JavaScript、图片和 CSS 文件。只要将它指向包含这些文件的目录,浏览器就能访问到这些文件了。

//在index.js顶部添加
app.use(bodyParser.json());//支持编码为JSON的请求体
app.use(bodyParser.urlencoded({extended:true}));//支持编码为表的请求体
app.use(
    '/css/bootstrap.css',
    express.static('node_modules/bootstrap/dist/css/bootstrap.css')
);

    把 /css/bootstrap.css 添加到模板中,来获得一些酷炫的 Bootstrap 样式。

<html>
    <head>
        <title>Later</title>
        <link rel="stylesheet" href="/css/bootstrap.css">
    </head>
    <body>
        <div class="container">

        用 npm 和客户端开发工具做更多事情

    时髦的前端开发人员不仅用 npm 下载这些库,还会用 npm 在客户端 JavaScript 中加载它们。借助 Browserify 和 Webpack,可以释放出 npm 安装器和加载依赖项的 require 的全部力量。想象一下,不仅在写 Node 代码时,在做前端开发时也可以敲入 const React = require('react')这样的代码!

最终效果

    注意!!!查看文章之前先创建文章

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值