>웹 프론트엔드 >JS 튜토리얼 >node.js, git 및 markdown을 사용하여 마이크로 블로그 구축

node.js, git 및 markdown을 사용하여 마이크로 블로그 구축

Christopher Nolan
Christopher Nolan원래의
2025-02-17 10:48:14488검색
node.js, git 및 markdown 를 기반으로 마이크로 블로그를 빌드하십시오 이 기사에서는 node.js, git 및 몇 가지 종속성을 사용하여 마이크로 블로그를 구축하는 방법을 살펴 봅니다. 이 앱은 저장소에 제출 된 파일의 정적 컨텐츠를 제공하도록 설계되었습니다. 애플리케이션을 구축하고 테스트하는 방법을 배우고 솔루션 제공 프로세스에 대한 통찰력을 얻습니다. 궁극적으로, 당신은 당신이 구축 할 수있는 미니멀하고 실행 가능한 블로그 애플리케이션을 가질 수 있습니다.

키 포인트 :

git은 기존 데이터베이스를 사용하지 않고 블로그 게시물을 버전의 텍스트 문서로 저장하는 데 사용됩니다.

Markdown은 블로그 포스트 형식에 사용되며 가벼운 콘텐츠를 허용하며 점차적으로 향상시킬 수 있습니다.

로스트. 단위 테스트에 사용됩니다. 단순하고 종속성이 없기 때문에 빠른 피드백과 개발자 신뢰가 향상 될 수 있습니다.

마이크로 블로그 아키텍처는 블로그 컨텐츠를 제공하기위한 라우팅 및 최소한의 종속성을 통해 단순성을 중심으로 설계되어 빠른 성능을 보장합니다. 이 구성 요소 목록을 사용하면 마이크로 블로그를 구축하는 데 필요한 모든 종속성이 있습니다.

종속성 선택은 쉽지 않습니다. 핵심은 현재 문제의 범위를 벗어난 모든 것이 종속성이 될 수 있다는 것입니다. 예를 들어, 테스트 러너 또는 데이터 저장소를 구축하지 않으므로 목록에 추가합니다. 주어진 의존성은 솔루션을 삼키고 코드를 납치 할 수 없습니다. 따라서 경량 구성 요소 만 선택하는 것이 좋습니다.

이 기사에서는 이미 Node, NPM 및 GIT와 다양한 테스트 방법에 익숙하다고 가정합니다. 나는 마이크로 블로그를 단계별로 구축하는 각 단계를 거치지 않고 코드의 특정 영역에 중점을 둡니다. 집에서의 조치를 따르고 코드가 GitHub에 업로드 된 경우 각 코드 스 니펫을 시도 할 수 있습니다.

테스트 테스트는 코드에 대한 신뢰를 제공하고 피드백 루프를 강화합니다. 프로그래밍의 피드백 루프는 새 코드 작성 및 실행 사이의 시간을 나타냅니다. 모든 웹 솔루션에서는 피드백을 얻기 위해 많은 레이어를 건너 뛰는 것을 의미합니다. 예를 들어 브라우저, 웹 서버 및 데이터베이스도 복잡성이 증가함에 따라 피드백을받는 데 몇 분 또는 1 시간이 걸릴 수 있습니다. 단위 테스트를 사용하면 이러한 계층을 줄이고 빠른 피드백을 얻을 수 있습니다. 이것은 현재 문제에 중점을 둡니다.

빠른 단위 테스트를 작성하여 모든 솔루션을 시작하고 싶습니다. 이로 인해 새로운 코드에 대한 테스트를 작성하기 시작했습니다. 이것이 로스트를 사용하여 실행을 시작하는 방법입니다.

파일에 추가하십시오 :

파일은 모든 단위 테스트를 도입하여 실행하는 곳입니다. 예를 들어 다음을 수행 할 수 있습니다

테스트를 실행하려면 를 실행하십시오. 기쁨으로 더 이상 새 코드를 테스트하기 위해 열심히 노력할 필요가 없습니다. 이것이 테스트에 관한 것입니다. 행복한 프로그래머는 자신감을 얻고 솔루션에 중점을 둡니다.

골격

MicroBlog는 노드를 사용하여 클라이언트 요청에 응답합니다. 효과적인 방법은

노드 API를 통한 것입니다. 이것은

의 다음 발췌문에서 볼 수 있습니다. package.json NPM 스크립트를 통해이 스크립트를 실행합니다.

<code class="language-json">"scripts": {
  "test": "node test/test.js"
},
"devDependencies": {
  "roast.it": "1.0.4"
}</code>
이제

는 기본 경로가되어 클라이언트에게 메시지를 반환합니다. 아이디어는 블로그 게시물 컨텐츠로 응답과 같은 다른 응답을 반환하기 위해 더 많은 경로를 추가하는 것입니다. test.js 폴더 구조

응용 프로그램의 구조를 구축하기 위해 다음 주요 부분을 사용하기로 결정했습니다.
<code class="language-javascript">var roast = require('roast.it');

roast.it('Is array empty', function isArrayEmpty() {
  var mock = [];

  return mock.length === 0;
});

roast.run();
roast.exit();</code>

나는이 폴더를 사용하여 코드를 구성합니다. 다음은 각 폴더의 목적에 대한 개요입니다. npm install && npm test : 원래 블로그 게시물을 순수한 마크 다운 형식으로 저장

: 클라이언트에 대한 응답 메시지를 구축하기위한 재사용 가능한 모듈 : 기본 경로 이외의 경로 : 단위 테스트를 작성해야 할 곳

: html 템플릿을 배치 할 곳 http.CreateServer() app.js 더 많은 라우팅 및 테스트 첫 번째 유스 케이스의 경우 블로그 게시물에 다른 경로를 소개합니다. 나는 그것을

라는 테스트 가능한 구성 요소에 넣기로 결정했습니다. 내가 좋아하는 것은 종속성을 주입 할 수 있다는 것입니다. 단위와 그 종속성 간의 우려를 분리하면 단위 테스트가 가능합니다. 각 의존성은 고립 된 테스트에서 모의를 얻습니다. 이를 통해 불변적이고 반복 가능하며 빠른 테스트를 작성할 수 있습니다. BlogRoute 예를 들어 생성자는 다음과 같습니다

효과적인 단위 테스트는 다음과 같습니다

현재,
<code class="language-json">"scripts": {
  "test": "node test/test.js"
},
"devDependencies": {
  "roast.it": "1.0.4"
}</code>
는 노드 api에서 나오는

객체를 기대합니다. 테스트를 통과하려면 다음을 수행하십시오.

이를 통해 요청 파이프 라인에 연결할 수 있습니다.
<code class="language-javascript">var roast = require('roast.it');

roast.it('Is array empty', function isArrayEmpty() {
  var mock = [];

  return mock.length === 0;
});

roast.run();
roast.exit();</code>
: 에서 다음을 수행 할 수 있습니다

테스트의 장점은 구현 세부 사항에 대해 미리 걱정할 필요가 없다는 것입니다. 곧 BlogRoute를 정의하겠습니다. 및 req 객체는

노드 api에서 나온 것입니다.
<code class="language-javascript">/* app.js */
var http = require('http');
var port = process.env.port || 1337;

var app = http.createServer(function requestListener(req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8'});
  res.end('A simple micro blog website with no frills nor nonsense.');
});

app.listen(port);

console.log('Listening on http://localhost:' + port);</code>
리포지토리

해결해야 할 다음 문제는 app.js의 원래 블로그 게시물 데이터를 읽는 것입니다. Node는 파일 시스템에서 읽을 수있는 모듈을 제공합니다.

<code class="language-json">"scripts": {
  "start": "node app.js"
}</code>
예 :

이 코드 스 니펫은 에 있습니다. 솔루션의 핵심은 저장소에서 텍스트 파일을 읽습니다. message는 비동기 작업입니다. 그렇기 때문에 res 콜백을 사용하여 파일 데이터로 호출합니다. 이 비동기 솔루션은 간단한 콜백을 사용합니다. req 이것은 파일 IO의 요구 사항을 제공합니다. 내가 좋아하는 것은 하나의 문제를 해결한다는 것입니다. 이것은 파일 읽기와 같은 크로스 도메인 문제이므로 단위 테스트를 수행 할 필요가 없습니다. 단위 테스트는 다른 코드가 아닌 자신의 코드의 격리 만 테스트해야합니다. http.createServer() 이론적으로는 메모리에서 파일 시스템을 시뮬레이션하고 이런 방식으로 단위 테스트를 작성할 수 있지만 솔루션은 모든 곳에서 우려를 유출하고 혼란으로 바뀌기 시작합니다.

파일 읽기와 같은 크로스 도메인 문제는 코드의 범위를 벗어납니다. 예를 들어, 읽기 파일은 직접 제어 할 수없는 서브 시스템에 따라 다릅니다. 이를 통해 테스트가 깨지기 쉬우 며 피드백 루프의 시간과 복잡성을 증가시킵니다. 이것은 솔루션에서 분리되어야하는 문제입니다.

마크 다운 파서 다음 문제는 원래 마크 다운 데이터를 저장소에서 HTML로 변환하는 것입니다. 이 과정은 두 단계로 나뉩니다

폴더에서 html 템플릿을 가져옵니다 html로 마크 다운을 구문 분석하고 템플릿을 채우십시오 BlogRoute.route() 사운드 프로그래밍 에서이 아이디어는 큰 문제를 작고 처리하기 쉬운 부분으로 분류하는 것입니다. 첫 번째 질문을 해결합시다 : 에있는 것에 따라 HTML 템플릿을 얻는 방법은 무엇입니까? fs 한 가지 방법은 다음과 같습니다

이것은 이전 섹션에서 사용 된 가상 콜백 ()을 대체 할 것임을 기억하십시오.

콜백을 교체하려면 다음을 수행하십시오

(공간 제한으로 인해 후속 내용이 생략되면 필요에 따라 직접 추가하십시오) dummyTest

위 내용은 node.js, git 및 markdown을 사용하여 마이크로 블로그 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Chart.js 2.0 소개다음 기사:Chart.js 2.0 소개