jade.js模板引擎教程-jade速学与实战1-基本用法
优采云 发布时间: 2021-07-06 20:08jade.js模板引擎教程-jade速学与实战1-基本用法
这个周末,我编了jade模板引擎生成静态html文件。这个文章需要懂玉,看我上一篇文章,我先给他们参考链接:
【js高手之路】Node.js模板引擎教程-玉速学习与实战1-基本使用
【js高手之路】Node.js模板引擎教程-玉速学习与实战2-进程控制、逃逸与非逃逸
【js高手之路】Node.js模板引擎教程-玉速学习与实战3-mixin
【js高手之路】Node.js模板引擎教程-玉石速学与实战4-模板参考、继承、插件使用
【js高手之路】Node.js实现一个简单的爬虫——从博客中抓取所有文章list信息
在上面分享的文章中,我抓取了博客的所有文章列表。数据库中没有采集,不做其他处理。对于这个文章,我们从上面的采集中梳理出文章列表中的所有信息,启动采集文章,生成静态html文件。先来看看我的采集效果,我的博客目前有77个文章,不到1分钟就生成了所有采集。这里剪了一些图片,文件名生成的id是文章,生成的文章,我写了一个简单的静态模板,所有文章都是基于这个模板生成的。
项目结构:
好的,接下来我们来解释一下这个文章的主要功能:
1、抓取文章,主要抓取文章、文章id的标题、内容、超链接(用于生成静态html文件)
2、基于jade模板生成html文件
一、取取文章如何实现?
很简单,类似于上面抓取文章lists的实现
1 function crawlerArc( url ){
2 var html = '';
3 var str = '';
4 var arcDetail = {};
5 http.get(url, function (res) {
6 res.on('data', function (chunk) {
7 html += chunk;
8 });
9 res.on('end', function () {
10 arcDetail = filterArticle( html );
11 str = jade.renderFile('./views/layout.jade', arcDetail );
12 fs.writeFile( './html/' + arcDetail['id'] + '.html', str, function( err ){
13 if( err ) {
14 console.log( err );
15 }
16 console.log( 'success:' + url );
17 if ( aUrl.length ) crawlerArc( aUrl.shift() );
18 } );
19 });
20 });
21 }
<p>参数url为文章的地址。捕获文章的内容后,调用filterArticle(html)过滤掉需要的文章信息(id、标题、超链接、内容),然后使用jade的renderFile的api实现模板内容的替换,