Запутался в терминологии Express, node.js - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок в веб-разработке. В настоящее время я учусь express. js. Следующий фрагмент кода и текста взят из их документации.

const express = require('express')

const app = express()

const port = 3000

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))

This app starts a server and listens on port 3000 for connections.

Я не совсем понимаю, что это за сервер. Какая строка кода относится к «созданию сервера»? Является ли приложение express самим сервером или оно только прослушивает запросы на порт 3000, а сервер - это что-то еще?

Большое спасибо!

Ответы [ 3 ]

3 голосов
/ 25 апреля 2020

В основном Express - это фреймворк Node Js, например, Python имеет Django, Java имеет Spring et c ..

Когда вы создаете сервер в node js, вы используйте модуль HTTP , в функции express in inside они предоставляют функцию listen .

Когда вы создаете сервер с помощью Node, вы используете код ниже

http.createServer(function (req, res) { res.write('Hello World!'); res.end(); //end the response }).listen(8080);

Таким образом, в модуле http узла есть функция прослушивания, а в express js express модуль имеет функцию прослушивания.

app.listen создает новый сервер. В express нет никакой терминологии CreateServer. Так что express очень гибок в использовании.

Пожалуйста, следуйте этому URL http://expressjs.com/en/guide/writing-middleware.html

1 голос
/ 25 апреля 2020

В ту минуту, когда вы позвоните listen , сервер начнет работать, прослушивая заданный вами ПОРТ. Вот построчно закомментированная версия вашего кода:

//We are creating the express app by setting it to the app variable.
const express = require('express')
//The express object
const app = express()
//The port
const port = 3000
/*
.get is telling to the express object that when it gets that route ('/')
it should give the specified response : 'Hello World!' for our case.
It takes in 2 arguments: 
(1) the url - the route
(2) the function that tells express what to send back as a response for the 
request - the callback function
*/
app.get('/', (req, res) => res.send('Hello World!'))

//.listen is going to bind the application to the port 3000.
app.listen(port, () => console.log(`My awesome app is listening at 
http://localhost:${port}`))

Чтобы узнать о разнице между узлом понятий и express, , я нашел этот ответ полезным .

0 голосов
/ 25 апреля 2020

Как вы сказали, весь блок "создает" сервер, а не только одна строка для "создания" сервера.

Используя узел и npm, вы устанавливаете express const express = require ('express')

В этой строке вы используете express framework const app = express ()

В этой строке вы устанавливаете const port port = 3000

В этой строке вы создаете основной root app.get ('/', (req, res) => res.send ('Hello World!'))

и эта строка использует порт и время запуска вашего веб-сервера app.listen (port, () => console.log (Example app listening at http://localhost:${port}))

Как вы видите, все это в совокупности "создает" сервер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...