Node.js – это двигатель JavaScript, который позволяет нам использовать JS Language в бэкэнд. Вы можете попрощаться с Apache, Nginx Servers или чем -то подобным для ваших потребностей в бэкэнд. Благодаря node.js, ваших знаний JS достаточно, чтобы работать в бэкэнде.
TL; DR -EXPLORE пример репозиторий
- Bootstrap Anode.js Server
- подавать HTML -файл
- Установите node.js в вашей локальной машине (по крайней мере, версия 10)
- иметь базовые знания о CLI (интерфейс командной строки)
Чтобы проверить установку Node.js, откройте терминал и введите
node --version
мой V14.4.0
Проверьте также диспетчер пакетов, который поставляется с Node.js npm
npm --version
мой 6.14.7
В случае, если у вас нет Node.js
, Go Здесь Чтобы скачать его.
Нам нужна папка, чтобы найти наш проект. Создайте один и назовите его так, как хотите, и перейдите к нему. В этом уроке я использую CLI.
mkdir node-server cd node-server
Имя папки Узел-сервер
Анкет
Оказавшись в нашей папке проекта, из CLI, мы теперь можем инициализировать npm
Проект как это:
npm init -y
Здесь ничего сложно, мы инициализируем проект NPM со значениями по умолчанию ( -y
flag). Если вы уйдете -y
Флаг вы будете отвечать на вопросы интерактивно. Может, тебе следует попробовать:).
Вы это заметили? NPM создал файл ( ls
, чтобы увидеть его) под названием:
Package.json является важным файлом в любом проекте Node.js, поскольку он хранит всю информацию (значения) для Projet: Автор, Лицензия, Пакеты …
Если вы хотите увидеть информацию по умолчанию в Package.json , используйте эту команду:
npm config list
Если вы хотите изменить дефолт, используйте npm set
npm set init.author.name "" npm set init.author.email "you@example.com" npm set init.author.url "example.com" npm set init.license "MIT"
Есть что сказать о Package.json Файл, но я думаю, что мы сможем зайти там сейчас.
Сейчас самое время обсудить организацию файла.
Есть много файловых организаций. Вы должны не стесняться идти с тем, который работает для вас нормально. В этом разделе я показываю вам один из способов.
Убедитесь, что вы находитесь в нашей первоначальной папке проекта ( Узел-сервер
). Оттуда создать SRC
папка и внутри нее создать Server.js
и app.js
и Просмотры
и public
Анкет
mkdir src && cd src touch server.js app.js mkdir views public
Мне лучше отделить объявления API ( app.js
) от сетевых проблем ( server.js
), но я вижу много друзей, использующих только один файл либо server.js, либо app.js. Просмотры
Папка о экране (HTML -файлы или шаблон, такие как Pug
). В public
Папка я помещаю изображения, стили и сценарии.
В финале моя структура файлов выглядит так
Теперь мы можем начать кодирование.
Чтобы создать сервер Node.js, легко и рекомендуется использовать такую структуру, как Express.js. Чтобы добавить пакет JS в качестве зависимости в вашем проекте, вы используете этот синтаксис: NPM Install -save <имя пакета>
Анкет
Давайте установим пакет Express.js.
npm install --save express
Если установка успешна, вы увидите node_modules
Папка, созданная в вашем каталоге проекта. Также в Package.json под зависимости
собственность Экспресс
добавлен с его версией ( "Express": "^4.17.1"
).
Примечание : Если вы используете git , добавить node_modules
в .gitignore .
Теперь мы можем использовать Экспресс
Анкет
Перейти к app.js
и добавить этот код:
// app.js const express = require("express") const app = express() module.exports = app
Здесь ничего сложно. Мы требуем выражать
, мы создаем его экземпляр, чтобы мы могли использовать его в проекте, и в конце мы экспортируем файл.
Теперь мы можем запустить сервер в Server.js
const app = require("./app") const port = 4000 app.listen(port, () => console.log(`The server is listening on port ${port}`))
Мы используем app.listen ()
Функция, которая связывает и слушает соединения на указанном хосте и порте. Чтобы увидеть, все ли в порядке, мы сможем запустить сервер так:
node src/server.js
Вы должны получить это сообщение на консоли Сервер прослушивает порт 4000
Анкет Но если ты пойдешь Localhost: 4000
Вы получите ошибку ( невозможно получить/
), потому что мы еще не определили ни одного маршрута. Мы можем добавить простой маршрут, как это:
// app.js // previous code here... app.get("/", (req, res) => { res.send("Hello") })
В целях производительности мы можем добавить цвет к нашим консольным сообщениям и журналическому, чтобы получить журнал на консоли. Установите эти пакеты:
npm install chalk morgan
После этого мы сможем настраивать их так:
// server.js const color = require("chalk") app.listen(port, () => console.log(`The server is listning on port ${color.green(port)}`) )
Я использую Мел
Зеленый цвет здесь. Вы можете использовать тот, который хотите. Проверьте Док !
// app.js const logger = require("morgan") app.use(logger("tiny"))
Морган
это промежуточное программное обеспечение для регистрации. Вы можете регистрировать все, что захотите на консоли. Вы можете регистрировать столько информации, сколько захотите. Здесь я хочу только какую -то основную информацию, поэтому я использую крошечный
Анкет Другие варианты Комбинированный
, девчонка
, общий
В короткий
Анкет Попробуйте их самостоятельно и посмотрите на вывод или прочитайте Док Анкет
Запустите сервер ( node src/server.js
) и см. Результат. В браузере у вас есть Привет
, на консоли 4000 в зеленом цвете, а некоторая другая информация напечатана там.
Еще одна вещь, прежде чем мы перейдем к обслуживанию HTML -файла. Вместо того, чтобы вводить каждый раз Node src/server.js
, мы можем добавить его в наш package.json чтобы мы могли использовать автоматические инструменты, такие как npm start
Анкет Итак, под Сценарии
имущество добавлять
"start": "node src/server.js"
Еще лучше, добавьте src/server.js
как значение Главный
свойство и изменить сценарий «Start», как SO:
"start": "node ."
Чтобы запустить сервер, вам просто нужно сделать NPM запускается
.
Чтобы закончить этот раздел, добавьте строку «мир» после «Привет» и перейдите в браузер, чтобы увидеть результат. Вы видите «мир»? Нет простите:(. Причина в том, что сервер не перезагрузился, чтобы обслуживать новые модификации. Остановите сервер ( ctrl + c
) и перезапустите его. Теперь вы можете увидеть «Hello World» в браузере.
Чтобы разрешить автоматический перезапуск сервера, мы можем использовать Nodemon
упаковка. Установите его и измените сценарий «Start» как SO: "Start": "Nodemon".
.
Поздравляю! Ваш сервер встает и хорошо прослушивает порт 4000
Анкет
Сейчас самое время обслуживать HTML -файл.
В Просмотры
forlder, создайте файл с именем index.html
и добавьте этот контент:
Node.js Starter Hello!
If you can see this text, your server is running properly.
Как мы можем увидеть содержимое файла выше в браузере?
Давайте научимся:
Иметь дело с файлами и каталогами
Чтобы работать с файлами и каталогами в приложении Node.js, нам нужны эти элементы:
- SendFile () : Метод Express.js, доступный на объекте ответа ( res ), который используется для рендеринга файла
- Путь : модуль Buit-In, который дает нам все инструменты, которые нам нужны для обработки кроссплатформенных путей.
- __dirname : Глобальный объект, который возвращает абсолютный путь каталога, содержащего в настоящее время выполняющий файл
Давайте придумаем все на практике.
res.sendFile(path);
Путь, который мы хотим отправить, это Views/index.html
Анкет Мы могли бы просто сделать это, чтобы определить наш путь:
res.sendFile(__dirname + "views/index.html");
Приведенный выше код будет работать нормально, если вы находитесь в системе, подобной UNIX. Если вы разрабатываете на машине Windows, вы столкнетесь с некоторыми проблемами, так как пути не работают одинаково в ОС Windows и Macosx или GNU/Linux. Чтобы избежать проблем, мы можем позволить Node.js обрабатывать это для нас. Добро пожаловать Путь
Модуль!
// app.js const path = require("path"); app.get("/", (req, res) => { res.sendFile(path.join(__dirname, "views", "index.html")); });
Я включаю Путь
модуль в проекте и используйте его .присоединиться ()
Метод для присоединения (объединить) все пути в строку. Последний путь после того, как я запускаю сервер, будет выглядеть так:
/home/abelmbula/Documents/dev/educative-courses/node-starter/src/views/index.html
На этом уроке мы узнали, как создать простой сервер node.js с экспресс -структурой и как отображать файл HTML. Вы можете найти полный код Здесь Анкет
Оригинал: “https://dev.to/bam92/how-to-setup-a-minimal-node-js-server-5479”