Node.js, Express 노트④

4218 단어 Node.jsExpress.js
나는 아이콘을 우리 집 고양이로 바꾸려고 했다.안녕하세요.
rete.js를 사용하기 위해 Express 강좌를 진행하고 있습니다.
지난번에 몬고DB를 처음 만났는데 반갑습니다.
새로운 지식을 실천하는 데 몰입하고 싶은 부분도 있지만 현재 DB가 중요한 것이 아니기 때문에 머릿속에 넣고 있다.
이번에는 이쪽 파트4를 하겠습니다.
https://developer.mozilla.org/ja/docs/Learn/Server-side/Express_Nodejs/routes
파트3의 후반부부터는 전혀 번역이 안 돼요.
나의 영어 능력이 각성되었다.
(구글이 번역할 때 2화면 좌우로 배열되면 가장 좋다.)

혼합


/페이지에 표시되는 정보를 설정하고 적절한 URL로 돌아가기
· 요청에 따라 모델에서 데이터를 가져와 HTML 페이지에 표시
(고정된 그림이지만) 이런 인상이에요.

루트가 뭐예요?


루트 디렉토리에는 적절한 HTTP(GET, POST, PUT, DELETE, etc.) URL 경로, 모드 및 해당 함수가 들어 있습니다.
이 방법들은 몇 가지가 있지만, 강좌에서는express이다.Router를 사용하고 있습니다.

일단 개별 코스를 만들까요?


wiki.js라는 독립 노선을 세워야 할 것 같습니다.
왜 갑자기 위키!나는 먼저 선생님의 가르침을 듣고 싶다.
wiki.js는 앱입니다.js와 같은 층에 놓다.선생님의 가르침

get 방법

router.get("/about", function(req, res){
res.send("About this wiki");
})
・req(HTTP request)
・res(HTTP response)
/next (위의 경우res.send () 를 사용했기 때문에 next를 지정하지 않은 것 같습니다.
res.send 외에 json을 되돌려주는 res.json (), 파일을 되돌려주는 res.sendFile () 도 있는 것 같습니다.

URL 설정

rooter.get("/url名", function(req, res){処理}하지만 얼마든지 뿌리 이하의 계층을 정의할 수 있다.그렇구나.
그리고 이 URL 이름은 정규 표현식입니까?그럴 수도 있어.기억app.get(/.*fish$/, function (req, res) {}또한 다음 모드를 통해 매개 변수를 동적으로 받아들일 수 있다.
책의 예에는 이런 느낌이 적혀 있다.http://localhost:3000/users/34/books/8989/users/:userId/books/:bookId이런 패턴이라면 userId는 34,:bookId는 8989입니다.
이것은 이해하기 쉽다.
그리고 제이슨 형식으로 유지되는 것 같습니다.req.params = {"userId": 34, "bookId": 8989}참고로 책을 추가할 때 /book/create 만들 때 /book/:userId 모드를 설정하면{userID: create}.
위에서 순서대로 일치하기 때문에 순서에 주의하세요.이런 일.

페이지 추가


기본적으로 js를 추가해서 연관시키는 것 같습니다.
// routes/wiki.js
var express = require("express");
var router = express.Router();

router.get("/", function(req, res){
    res.send("About this wiki");
})

module.exports = router;
※ 코드 작성법을 처음 알았습니다!
마지막 줄이 중요한 것 같아.이 글은 넣지 않아서 몇 시간을 낭비했다.
app.jsに以下を追加
var wiki = require("./wiki");

app.set("/wiki", wiki);
간단하게 추가하면 돼요.
이제 방문해도 돼요.
http://localhost:3000/wiki
허허.

controller


VC의 C지만 항상 어렵게 한다.
위키백과에 의하면ユーザからの入力(通常イベントとして通知される)をモデルへのメッセージへと変換してモデルに伝える要素である。すなわち、UIからの入力を担当する。モデルに変更を引き起こす場合もあるが、直接に描画を行ったり、モデルの内部データを直接操作したりはしない。의 명세란 스타일에 정의된 설정입니다.
중요한 것은 UI에 입력된 것을 모델에 전달하는 부분의 독립성을 유지하면 된다는 것입니까
bookControler.js
var Book = require("../models/book");

exports.index = function(req, res){
    res.send("NOT IMPLEMENTED: site Home Page");
}

exports.book_create_get = function(req, res){
    res.send("NOT IMPLEMENTED: book create GET");
};

exports.book_create_post = function(req, res){
    res.send("NOT IMPLEMENTED: book create POST");
};
省略
처음에 책의 모형을 가져왔지만 강좌에 기술되지 않았습니다.
앞으로 나아가는 과정에서 사용될 것을 기대하면서 경을 계속 쓴다.
routes/catalog.js

var express = require('express');
var router = express.Router();

var book_controller = require("../controllers/bookController");

router.get("/", book_controller.index);
router.get("/book/create", book_controller.book_create_get);
router.post("/book/create", book_controller.book_create_post);
省略
catalog에 이런 URL이 나타나면 이렇게 처리합니다.
자세히 보면, 이 강좌를 통해서도 서로 다른 작법이 있을 수 있으니, 앞으로 기술은 증가할 것이다
헤어질 뜻이 있는 것 같지 않아요?
app.js
var catalogRouter = require("./routes/catalog");
app.use("/catalog", catalogRouter);
마지막으로catarog의 URL을 호출하기 위해 앱에 추가합니다.
그렇구나!
이렇게 하면 아마 가상 구조를 완성할 수 있을 거라고 생각합니다.
다음에 모델을 추가, 업데이트, 삭제할 예감이 듭니다.
계속

좋은 웹페이지 즐겨찾기