サイトアイコン 上尾市のWEBプログラマーによるブログ

「入門Node.jsプログラミング 」の感想・備忘録2

「入門Node.jsプログラミング 」の感想・備忘録1の続き

Lesson8

Express.jsを使う

const port = 3000,
  express = require("express"),
  app = express();

app.get("/", (req, res) => {
  res.send('hello2!');
}).get("/items/:id", (req, res) => {
  res.send(`<h1>${req.params.id}</h1>`);
}).listen(port, () => {
  console.log(`Server running on port: ${port}`);
});

ミドルウェア関数

app.use((req, res, next) => {
  console.log(`request made to: ${req.url}`);
  next();
});
// 第1引数を/itemsとすると、/items/1や/items/1/editなどのルートで共通の処理となる。
app.use('/items', (req, res, next) => {
  console.log(`items request made to: ${req.url}`);
  next();
});

nodemon

Lesson9

パラメータを受け取る

MVCに分ける

const port = 3000;
const express = require("express");
const app = express();
const homeController = require("./controllers/homeController");
app.use(express.urlencoded({extended: false})
).use(express.json());

app.get("/items/:vegetable", homeController.sendReqParam);
app.listen(port, () => {
  console.log(`Server running on port: ${port}`);
});
exports.sendReqParam = (req, res) => {
  res.send(`This is the page for ${req.params.vegetable}`);
};

Lesson10

EJSを使う

const express = require("express");
const layouts = require("express-ejs-layouts");
const app = express();
const homeController = require("./controllers/homeController");
app.set("port", process.env.PORT || 3000);
app.set("view engine", "ejs");
app.use(layouts);

app.get("/name/:name", homeController.respondWithName);
app.listen(app.get('port'), () => {
  console.log(`Server running on port: ${app.get('port')}`);
});
exports.respondWithName = (req, res) => {
  res.render("index", {name: req.params.name});
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>App</title>
</head>
<body>
<%- body %>
</body>
</html>
<h1> Hello, <%= name %></h1>

app.set()メソッド

モバイルバージョンを終了