얼마 전, 나는 의미라는 단어를 언급하는 기사를 보았다. 의미는 무엇입니까?
실제로 MENA는 MongoDB (비 관계형 데이터베이스) + Express (Template Engine) + AngularJS (MVC JavaScript 라이브러리) + Nodejs (Server Script)의 약어입니다.
그들은 함께 JavaScript를 기반으로 최신 웹 애플리케이션 풀 스택 개발 도구를 구성합니다.
mongodb :
데이터를 저장하는 강력하고 유연하며 확장 가능한 방법입니다.
보조 인덱싱, 범위 쿼리 및 정렬과 같은 관계형 데이터베이스의 유용한 기능, MapReduce 스타일 집계에 대한 내장 지원 및 지리 공간 인덱싱 지원과 같은 많은 유용한 기능을 확장합니다.
기존 데이터베이스 행의 개념을 문서 모델로 대체합니다. 소위 문서 모델은 실제로 배열 객체입니다.
문서 모델을 살펴 보겠습니다.
{ "_id": 1, "Greeting": "안녕하세요, 세계!" , "foo": 3}
각 문서에는 _id 필드가 있습니다. 문서 모델은 필드 인사말, foo 및 _id가 포함 된 데이터베이스의 레코드를 나타냅니다.
표현하다:
마지막 엔진 익스프레스와 관련하여 문장으로 설명하고 싶습니다.
간단하고 유연한 node.jsweb 응용 프로그램 프레임 워크로 다양한 웹 애플리케이션을 만드는 데 도움이되는 일련의 강력한 기능을 제공합니다.
Connect Framework의 풍부한 HTTP 도구 및 미들웨어가 원하는대로 사용할 수 있으므로 강력하고 친근한 API를 빠르고 쉽게 만들 수 있습니다.
Express는 Node.js의 기존 기능에 대한 2 차 추상화를 수행하지 않으며 웹 응용 프로그램에 필요한 기능을 확장합니다.
Angularjs :
AngularJS는 Google에서 개발 한 JS 라이브러리입니다. Backone과 동일한 MVC 스크립트 라이브러리입니다.
거의 모든 언어의 첫 번째 교훈은 Hello World에 관한 것입니다. 컨벤션에 따르면, 우리는 또한 하나를 할 것입니다.
코드 사본은 다음과 같습니다.
<! doctype html>
<html ng-app>
<헤드>
<script src = "http://code.angularjs.org/angular-1.0.1.min.js"> </script>
</head>
<body>
안녕하세요 {{ 'world'}}!
</body>
</html>
<html ng-app>
페이지가 AngularJS를 사용한다고 선언하고 페이지가로드되면 NG-App은 AngularJS에 전체 HTML 페이지를 처리하고 응용 프로그램을 부팅하도록 지시합니다.
이 예제는 페이지에 Hello World를 인쇄하고 일부 사람들은 놀랐습니다. 왜 Hello World가 그렇게 복잡합니까?
실제로 {{}}의 내용은 데이터 바인딩의 한 형태입니다. 다음 예를 읽은 후에는 그 힘을 알게 될 것입니다.
다음 예를 살펴 보겠습니다.
코드 사본은 다음과 같습니다.
<! doctype html>
<html ng-app>
<헤드>
<script src = "Angular-1.0.1.min.js"> </script>
</head>
<body>
귀하의 이름 : <입력 유형 = "텍스트"ng-model = "YourName"자리 표시기 = "world">
<HR>
안녕하세요 {{YourName || '세계'}}!
</body>
</html>
브라우저 에서이 페이지를 열고 입력 상자에 임의 문자를 입력하십시오. 입력 한 문자가 즉시 업데이트되고 인사말에 표시됩니다. 마법이 아닌가?
의 생각. 입력 상자의 변경 사항은 즉시 모델 변수 (한 방향)에 반영되며 모델 변수에 대한 변경 사항은 즉시 인사 텍스트 (다른 방향)에 반영됩니다.
이 예제는 다음과 같은 중요한 참고 사항이 있습니다.
1. 텍스트 입력 명령어 <입력 ng-model = "YourName" />은 YourName이라는 모델 변수에 바인딩됩니다.
2. Double Brace Mark는 인사말 텍스트에 이름 모델 변수를 추가합니다.
3. 이벤트 리스너를 등록하거나 응용 프로그램에 대한 이벤트 핸들러를 추가 할 필요가 없습니다!
nodejs
Ryan Dahl이 개발 한 고성능 서버 JS 플랫폼입니다.
자동차의 V8 엔진이 아닌 Google에서 개발 한 JavaScript 엔진 인 V8 엔진에서 개발되었습니다. 다른 스크립팅 언어를 훨씬 능가하는 고성능 엔진입니다.
Nodejs는 비동기 I/O 통신 방법을 사용하며 Ajax와 매우 유사합니다.
코드 사본은 다음과 같습니다.
$ .post ( "url", {title : "post request"}, function (data) {
Console.log ( "응답 수신");
})
Console.log ( "Ajax end");
nodejs 요청 방법 :
코드 사본은 다음과 같습니다.
var fs = 요구 ( 'fs');
fs.ReadFile ( "/path", function (err, file) {
Console.log ( "파일 읽기 완료");
});
Console.log ( "읽기 시작 파일 시작");
다음 예를 살펴 보겠습니다.
두 개의 요청이 동시에 실행되면 총 소비는 두 요청의 시간 소비가 아닌 가장 소비되는 요청에 따라 달라집니다.
코드 사본은 다음과 같습니다.
// 첫 번째 요청
var fs = 요구 ( 'fs');
fs.ReadFile ( "/path1", function (err, file) {
Console.log ( "파일 읽기 1 완료");
});
// 두 번째 요청
fs.ReadFile ( "/path2", function (err, file) {
Console.log ( "파일 읽기 2가 완료되었습니다");
});
Console.log ( "읽기 시작 파일 시작");
Nodejs가 고성능을 가진 또 다른 이유는 이벤트 중심입니다.
노드는 프론트 엔드 브라우저에서 백엔드에 이벤트를 도입하고 비동기 I/O와 협력하여 이벤트 포인트를 비즈니스 로직에 노출시킵니다.
이벤트가되는 방식은 가볍고 느슨한 커플 링의 장점을 가지고 있으며 사물에만 집중합니다.