rainman2013的专栏

寒假在某公司实习,做nodejs平台下的web开发。初次学习nodejs的我感觉这个小东西真的是潜力无穷。用nodejs来做服务器端的平台,代码量很少,却又有强大多样的模块支持。于是我打算用业余时间搭建一个个人网站。此连载文章用于与大家交流经验,分享所得。

本人的个人网站采用nodejs平台的express框架与MYSQL数据库。网页前端UI使用了网上开源的bootstrap框架。

express版本为4.11.0。

网站大体由三个主要页面组成:blogs, projects, contact

blogs页面显示每个文章的第一段。点进文章之后的页面叫article

外加隐藏的login界面用于管理员的登录。

网站的路由初步规划是这样的:

‘/’与’/blogs’路径请求使用blog.ejs文件进行渲染。

‘/login’, ‘/project’, ‘/contact’三个路径请求分别使用login.ejs, project.ejs, contact.ejs三个文件进行渲染。

‘/blogs/articla/:articleNum’路径请求使用article.ejs文件进行渲染。articleNum变量代表每个博客文章的id。

projects页面目前还没有进行设计。

blogs.ejs中,用于显示每个缩略文章的html代码如下:  

===>>>==>>(textArr.length > 1){ %>></div></div>

其中前面部分的三个<%=…%>代表的是模板变量,我们现不管它,我们看标签部分,href为’/blogs/article/’与blogsArray[i][‘blog_id’]相连组成一个新的url。在express的app.js中,关于这部分的代码如下所示:

app.get(‘/blogs/article/:blog_id’, function(req, res, next){connection.query(‘select * from blogs where blog_id = ‘ + req.params.blog_id, function(err, result){if (err){alert(‘Cannot get article’);}else{res.article = result;}next()})})

在路由控制的index.js中我使用如下代码:

router.get(‘/blogs/article/:articleNum’, function(req, res, next) {res.render(‘article’,{blog: ‘active’,projects: ”,contact: ”,admin: req.session.admin,article: res.article});});

这段代码指出当获取到/blogs/article/:articleNum请求时使用article文件进行渲染,并设置article变量传递从数据库调出的文章数据。数据库的设计我会在后面详细介绍。用于存储文章的表由以下6个字段组成: blog_id int not null auto_increment blog_time datetime not null blog_title mediumtext not null blog_content longtext not null blog_reading_number int not null blog_author mediumtext not null

,学做任何事得按部就班,急不得

rainman2013的专栏

相关文章:

你感兴趣的文章:

标签云: