Cheatography
https://cheatography.com
Базовый синтаксис Node.JS + фреймворк Express
This is a draft cheat sheet. It is a work in progress and is not finished yet.
Синтаксис
Запуск консоли (REPL) |
|
Запустить сервер |
|
остановить сервер |
|
Подключить пакет |
var something = require('пакет');
|
Выполнить функцию подключенного пакета |
|
npm
Установка пакета
|
Установка с сохранением в dependencies (package.json)
|
ejs
Установка ejs
|
Синтаксис Весь код пишется как html, куски js-кода вставляют в конструкции: <%= код %>
- когда получаемое значение выводится в html (например вывод переменных) <% код %>
- когда код в конструкции не выводится (условия, циклы и т.п.)
|
Условие <% if(условие) { %> <p>Выведется, только если выполняется условие</p> <% } %>
|
Цикл <% for(var i=0;i<posts.lenght;i++) { %> <div><%= posts[i].content %></div> <% } %>
|
Передать переменные в ejs-файл res.render("файл.ejs",{переменная: "значение"});
- второй параметр - объект
|
Шаблоны (partials) Хранятся в папке "views/partials" Пример шаблона header.ejs: <!DOCTYPE html>...<body>
|
Включить шаблон <% include partials/header %>
|
package.json
package.json хранит метаданные проекта |
В разделе 'dependencies' хранятся используемые модули и версии |
Сгенерировать package.json: npm init
entry point - начальный файл (обычно app.js) пропустить пункт - нажать enter |
|
|
Express
Подключение express var express = require('express'); var app = express();
- сохр. в переменную app
|
Routes обрабатывают http-запросы Пример: app.get("/",function(req,res){ res.send("text"); }); req,res
- передаем объекты запроса и ответа в функцию
|
Ожидать запросы app.listen(порт,process.env.IP,callback);
Порт обычно 3000
или process.env.PORT
|
Остальные запросы (404) ссылка "*"
Так как выполняется первый подходящий route, то route для 404 должен идти последним
|
Редирект res.redirect("/путь");
|
Параметры (переменные) app.get("r/:post/id/:title", function);
:post
и :title
- параметры
|
Доступ к параметру var параметр = res.params.параметр;
Параметры лучше обрабатывать через toLowerCase()
|
Параметр в число Number(req.params.параметр);
|
Ответ .send()
- ответ, выполняется один раз .reneder("файл")
- ответ файлом (ejs/html)
|
Расширение файлов для render app.set("view engine","ejs");
- в функции render можно будет указывать только имя файла, без расширения (ejs)
|
Стили и скрипты css и js файлы хранить в папке public (можно в подпапках) Папку нужно подключить в app.js: app.use(express.static("public"));
- в адресах файлов не нужно будет указывать public ("/js/main.js", "css/app.css")
|
POST app.post("/url",function);
|
Получить атрибут name тега input (POST) req.body.input_name;
- для доступа к body нужен пакет body-parser
|
Подключение body-parser var bodyParser = require("body-parser"); app.use(bodyParser.urlencoded({extended: trued}));
|
|
|
|