From 980fe00a74a9ad013b945755415ace2e5429c3c2 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 27 Oct 2021 02:31:24 +0300 Subject: [RU] Remove notranslate (#2874) --- .../express_nodejs/introduction/index.html | 54 +++++++++++----------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'files/ru/learn/server-side/express_nodejs/introduction/index.html') diff --git a/files/ru/learn/server-side/express_nodejs/introduction/index.html b/files/ru/learn/server-side/express_nodejs/introduction/index.html index 881a3c70d6..cbcafaa64a 100644 --- a/files/ru/learn/server-side/express_nodejs/introduction/index.html +++ b/files/ru/learn/server-side/express_nodejs/introduction/index.html @@ -46,13 +46,13 @@ translation_of: Learn/Server-side/Express_Nodejs/Introduction
  • Создайте папку, куда вы хотите сохранить программу, к примеру test-node и перейдите в неё с помощью следующей команды:
  • -
    cd test-node
    +
    cd test-node
    1. Используя любимый текстовый редактор, создайте файл hello.js и вставьте в него код:
    -
    // Загружаем HTTP модуль
    +
    // Загружаем HTTP модуль
     const http = require("http");
     
     const hostname = "127.0.0.1";
    @@ -79,7 +79,7 @@ server.listen(port, hostname, () => {
      
  • Вернитесь в терминал и выполните следующую команду:
  • -
    node hello.js
    +
    node hello.js

    В итоге, перейдите по ссылке http://localhost:8000 в вашем браузере; вы должны увидеть текст "Hello World" в верху слева на чистой странице.

    @@ -144,7 +144,7 @@ server.listen(port, hostname, () => {

    Совет: Если у вас уже установлены Node и Express (или если вы устанавливаете их, как показано в следующей статье), вы можете сохранить этот код в файле с именем app.js и запустить его в командной строке, вызвав узел app.js. отражения).

    -
    var express = require('express');
    +
    var express = require('express');
     var app = express();
     
     app.get('/', function(req, res) {
    @@ -168,7 +168,7 @@ app.listen(3000, function() {
      
    Приведённый ниже код показывает, как мы импортируем модуль по имени, используя в качестве примера платформу Express. Сначала мы вызываем функцию require (), определяя имя модуля в виде строки («express») и вызывая возвращённый объект для создания приложения Express. Затем мы можем получить доступ к свойствам и функциям объекта приложения.

    -
    var express = require('express');
    +
    var express = require('express');
     var app = express();
     
    @@ -180,13 +180,13 @@ var app = express();

    Чтобы сделать объекты доступными вне модуля, вам просто нужно назначить их объекту экспорта. Например, модуль square.js ниже представляет собой файл, который экспортирует методы area () и perimeter ():

    -
    exports.area = function(width) { return width * width; };
    +
    exports.area = function(width) { return width * width; };
     exports.perimeter = function(width) { return 4 * width; };
     

    Мы можем импортировать этот модуль, используя require (), а затем вызвать экспортированные методы, как показано:

    -
    var square = require('./square'); // Here we require() the name of the file without the (optional) .js file extension
    +
    var square = require('./square'); // Here we require() the name of the file without the (optional) .js file extension
     console.log('The area of a square with a width of 4 is ' + square.area(4));
    @@ -195,7 +195,7 @@ console.log('The area of a square with a width of 4 is ' + square.area(4));
    Если вы хотите экспортировать полный объект в одном назначении, а не создавать его по одному свойству за раз, назначьте его для module.exports, как показано ниже (вы также можете сделать это, чтобы сделать корень объекта экспорта конструктором или другой функцией) :

    -
    module.exports = {
    +
    module.exports = {
       area: function(width) {
         return width * width;
       },
    @@ -212,13 +212,13 @@ console.log('The area of a square with a width of 4 is ' + square.area(4));
    Код JavaScript часто использует асинхронные, а не синхронные API для операций, выполнение которых может занять некоторое время. Синхронный API - это тот, в котором каждая операция должна завершиться до начала следующей операции. Например, следующие функции журнала являются синхронными и выводят текст на консоль по порядку (первый, второй).

    -
    console.log('First');
    +
    console.log('First');
     console.log('Second');
     

    В отличие от этого, асинхронный API - это тот, в котором API начнёт операцию и сразу же вернётся (до завершения операции). После завершения операции API будет использовать некоторый механизм для выполнения дополнительных операций. Например, приведённый ниже код выведет «Second, First», потому что хотя метод setTimeout () вызывается первым и возвращается немедленно, операция не завершается в течение нескольких секунд.

    -
    setTimeout(function() {
    +
    setTimeout(function() {
        console.log('First');
        }, 3000);
     console.log('Second');
    @@ -240,7 +240,7 @@ console.log('Second');
     
     

    В нашем примере Hello World Express (см. Выше) мы определили функцию обработчика маршрута (колбэка) для HTTP-запросов GET к корню сайта ('/').

    -
    app.get('/', function(req, res) {
    +
    app.get('/', function(req, res) {
       res.send('Hello World!');
     });
     
    @@ -255,7 +255,7 @@ console.log('Second');

    Существует специальный метод маршрутизации app.all (), который будет вызываться в ответ на любой метод HTTP. Это используется для загрузки функций промежуточного программного обеспечения по определённому пути для всех методов запроса. В следующем примере (из документации Express) показан обработчик, который будет выполняться для запросов к / secret независимо от используемого глагола HTTP (при условии, что он поддерживается модулем http).

    -
    app.all('/secret', function(req, res, next) {
    +
    app.all('/secret', function(req, res, next) {
       console.log('Accessing the secret section ...');
       next(); // pass control to the next handler
     });
    @@ -264,7 +264,7 @@ console.log('Second');
    Часто полезно группировать обработчики маршрутов для определённой части сайта и получать к ним доступ с помощью общего префикса маршрута (например, сайт с вики может иметь все связанные с вики маршруты в одном файле и иметь к ним доступ с префиксом маршрута из / вики /). В Express это достигается с помощью объекта express.Router. Например, мы можем создать наш вики-маршрут в модуле с именем wiki.js, а затем экспортировать объект Router, как показано ниже:

    -
    // wiki.js - Wiki route module
    +
    // wiki.js - Wiki route module
     
     var express = require('express');
     var router = express.Router();
    @@ -288,7 +288,7 @@ module.exports = router;
     
     

    Чтобы использовать маршрутизатор в нашем главном файле приложения, нам потребуется () модуль route (wiki.js), а затем вызовите use () в приложении Express, чтобы добавить маршрутизатор в путь обработки промежуточного программного обеспечения. Эти два маршрута будут доступны из / wiki / и / wiki / about /.

    -
    var wiki = require('./wiki.js');
    +
    var wiki = require('./wiki.js');
     // ...
     app.use('/wiki', wiki);
    @@ -306,12 +306,12 @@ app.use('/wiki', wiki);

    Для использования стороннего промежуточного программного обеспечения сначала необходимо установить его в своё приложение с помощью NPM. Например, чтобы установить промежуточное программное обеспечение средства регистрации HTTP-запросов morgan, вы должны сделать следующее:

    -
    $ npm install morgan
    +
    $ npm install morgan
     

    Затем вы можете вызвать use () для объекта приложения Express, чтобы добавить промежуточное программное обеспечение в стек:

    -
    var express = require('express');
    +
    var express = require('express');
     var logger = require('morgan');
     var app = express();
     app.use(logger('dev'));
    @@ -327,7 +327,7 @@ var app = express();
      
    В приведённом ниже примере показано, как можно добавить функцию промежуточного программного обеспечения, используя оба метода, а также с / без маршрута.

    -
    var express = require('express');
    +
    var express = require('express');
     var app = express();
     
     // An example middleware function
    @@ -357,12 +357,12 @@ app.listen(3000);

    Вы можете использовать промежуточное программное обеспечение express.static для обслуживания статических файлов, включая ваши изображения, CSS и JavaScript (static () - единственная функция промежуточного программного обеспечения, которая фактически является частью Express). Например, вы должны использовать строку ниже для обслуживания изображений, файлов CSS и файлов JavaScript из каталога с именем public на том же уровне, где вы вызываете узел:

    -
    app.use(express.static('public'));
    +
    app.use(express.static('public'));
     

    Любые файлы в публичном каталоге обслуживаются путём добавления их имени файла (относительно базового «публичного» каталога) к базовому URL. Так, например:

    -
    http://localhost:3000/images/dog.jpg
    +
    http://localhost:3000/images/dog.jpg
     http://localhost:3000/css/style.css
     http://localhost:3000/js/app.js
     http://localhost:3000/about.html
    @@ -370,18 +370,18 @@ http://localhost:3000/about.html
     
     

    Вы можете вызывать static () несколько раз для обслуживания нескольких каталогов. Если файл не может быть найден одной функцией промежуточного программного обеспечения, он будет просто передан последующему промежуточному программному обеспечению (порядок вызова промежуточного программного обеспечения основан на вашем порядке объявления).

    -
    app.use(express.static('public'));
    +
    app.use(express.static('public'));
     app.use(express.static('media'));
     

    Вы также можете создать виртуальный префикс для ваших статических URL-адресов, вместо добавления файлов к базовому URL-адресу. Например, здесь мы указываем путь монтирования, чтобы файлы загружались с префиксом "/ media":

    -
    app.use('/media', express.static('public'));
    +
    app.use('/media', express.static('public'));
     

    Теперь вы можете загружать файлы, находящиеся в публичном каталоге, из префикса / media path.

    -
    http://localhost:3000/media/images/dog.jpg
    +
    http://localhost:3000/media/images/dog.jpg
     http://localhost:3000/media/video/cat.mp4
     http://localhost:3000/media/cry.mp3
     
    @@ -392,7 +392,7 @@ http://localhost:3000/media/cry.mp3

    Ошибки обрабатываются одной или несколькими специальными функциями промежуточного программного обеспечения, которые имеют четыре аргумента вместо обычных трёх: (err, req, res, next). Например:

    -
    app.use(function(err, req, res, next) {
    +
    app.use(function(err, req, res, next) {
       console.error(err.stack);
       res.status(500).send('Something broke!');
     });
    @@ -418,12 +418,12 @@ http://localhost:3000/media/cry.mp3
      
    Чтобы использовать их, вы должны сначала установить драйвер базы данных, используя NPM. Например, чтобы установить драйвер для популярной NoSQL MongoDB, вы должны использовать команду:

    -
    $ npm install mongodb
    +
    $ npm install mongodb
     

    Сама база данных может быть установлена локально или на облачном сервере. В вашем экспресс-коде вам требуется драйвер, подключиться к базе данных, а затем выполнить операции создания, чтения, обновления и удаления (CRUD). Пример ниже (из документации Express) показывает, как вы можете найти записи «млекопитающих», используя MongoDB.

    -
    var MongoClient = require('mongodb').MongoClient;
    +
    var MongoClient = require('mongodb').MongoClient;
     
     MongoClient.connect('mongodb://localhost:27017/animals', function(err, db) {
       if (err) throw err;
    @@ -445,7 +445,7 @@ MongoClient.connect('mongodb://localhost:27017/animals', function(err, db) {
      
    В своём коде настроек приложения вы задаёте механизм шаблонов для использования и место, где Express должен искать шаблоны, используя настройки «views» и «engine», как показано ниже (вам также нужно будет установить пакет, содержащий вашу библиотеку шаблонов). !)

    -
    var express = require('express');
    +
    var express = require('express');
     var app = express();
     
     // Set directory to contain the templates ('views')
    @@ -457,7 +457,7 @@ app.set('view engine', 'some_template_engine_name');
     
     

    Внешний вид шаблона будет зависеть от того, какой движок вы используете. Предполагая, что у вас есть файл шаблона с именем «index. <Template_extension>», который содержит заполнители для переменных данных с именами «title» и «message», вы должны вызвать Response.render () в функции обработчика маршрута для создания и отправки ответа HTML. :

    -
    app.get('/', function(req, res) {
    +
    app.get('/', function(req, res) {
       res.render('index', { title: 'About dogs', message: 'Dogs rock!' });
     });
    -- cgit v1.2.3-54-g00ecf