[Node.js][006화] 아카이브 페이지 추가
2566 단어 node.js
우선, 우리는 홈페이지 왼쪽 내비게이션에 압축 파일 페이지 (archive) 의 링크를 추가하고 헤더를 수정합니다.ejs,
<span><a title=" " href="/">home</a></span>
아래에 코드 줄을 추가합니다.<span><a title=" " href="/archive">archive</a></span>
다음은 index에 있습니다.js에/archive의 루트 규칙을 추가합니다.
app.get('/u/:name')
전에 다음 코드를 추가합니다.app.get('/archive', function(req,res){
Post.getArchive(function(err, posts){
if(err){
req.flash('error',err);
return res.redirect('/');
}
res.render('archive',{
title: ' ',
posts: posts,
user: req.session.user,
success: req.flash('success').toString(),
error: req.flash('error').toString()
});
});
});
post 수정js, 다음 코드를 추가합니다.
Post.getArchive = function(callback) {//
mongodb.open(function (err, db) {
if (err) {
return callback(err);
}
db.collection('posts', function(err, collection) {
if (err) {
mongodb.close();
return callback(err);
}
// name、time、title
collection.find({},{"name":1,"time":1,"title":1}).sort({
time:-1
}).toArray(function(err, docs){
mongodb.close();
if (err) {
callback(err, null);
}
callback(null, docs);
});
});
});
};
views 폴더 아래에 새로운archive.ejs, 다음 코드를 추가합니다.
<%- include header %>
<ul class="archive">
<% var lastYear=0 %>
<% posts.forEach(function(post, index){ %>
<% if(lastYear!=post.time.year){ %>
<li><h3><%= post.time.year %></h3></li>
<% lastYear=post.time.year } %>
<li><time><%= post.time.day %></time></li>
<li><a href="/u/<%= post.name %>/<%= post.time.day %>/<%= post.title %>"><%= post.title %></a></li>
<% }) %>
</ul>
<%- include footer %>
여기에서 우리는 lastYear를 통해 지난번에 표시된 연도와 같은지 여부를 판단합니다. 같으면 다시 표시하지 않고, 다르면 표시합니다.
마지막으로header에서.ejs에 다음 스타일이 추가됩니다.
.archive{list-style:none;line-height:28px;}
.archive h3{margin:0.5em 0;}
.archive time{float:left;font-size:14px;color:#999999;margin-right:1.2em;}
현재, 우리는 문장의 압축 파일 페이지를 추가했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.