#javascript #node.js
#javascript #node.js
Вопрос:
Кто-нибудь может объяснить мне, почему мы используем общую папку для хранения CSS и папки изображений?Я новичок в node js и пытаюсь подробно изучить его.
Комментарии:
1. Мы этого не делаем: у node нет такого требования, потому что Node сам по себе не является веб-сервером, это язык программирования со стандартной библиотекой. Выбор того, как называть ваш каталог статических ресурсов, полностью зависит от вашего выбора фреймворка (и от того, заботит это или имеет какой-то термин по умолчанию, который ему нравится использовать). Например, Express.js неважно, выбирайте все, что вам нравится. Черт возьми, выберите более одного каталога, если хотите.
Ответ №1:
Как следует из названия «общедоступный», он предназначен для обслуживания статических файлов (которые не меняются), таких как CSS, JavaScript, изображения и т.д.
Мы храним эти файлы в общей папке и предоставляем доступ ко всей папке с помощью надлежащих средств.
Теперь любой, кто запрашивает эти файлы (браузер), которые присутствуют в этой общей папке, может получить доступ к файлам. Обратите внимание, что вы можете иметь любое имя и предоставлять его, «общедоступное» — это просто правильное и распространенное имя.
Кроме того, по умолчанию ваша папка будет недоступна. Вам нужно включить это.
Из экспресс-документации,
For example, use the following code to serve images, CSS files, and JavaScript files
in a directory named public:
app.use(express.static('public'))
Now, you can load the files that are in the public directory:
http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html
https://expressjs.com/en/starter/static-files.html Проверьте это для получения дополнительной информации, если вы используете express.
Допустим, вы не храните файлы в папке, которая не является общедоступной, что произойдет, если браузер или любой клиент, который пытается получить изображение или CSS, не смогут получить доступ. В этом случае вам необходимо включить отдельные маршруты для этих файлов независимо и для всех общедоступных файлов, что отнимает много времени и является сложным.
Позвольте мне привести вам пример, представьте, что на вашей веб-странице есть изображение cat в теге в html. Что делает браузер, так это делает запрос get, чтобы получить это изображение с сервера, если изображения нет в общей папке или нет настройки маршрута для обработки этого файла, браузер не сможет отобразить изображение на веб-странице.
Примечание: Вот почему личные изображения не сохраняются в общедоступном каталоге, вам лучше иметь динамический маршрут, который обрабатывает эти изображения. Только аутентифицированные пользователи смогут получить доступ. Если вы поместите личные изображения в общую папку, любой может получить к ней доступ.
Комментарии:
1. О, теперь я понял. Спасибо за вашу помощь. Не могли бы вы подсказать, на чем мне следует сосредоточиться, когда я пытаюсь узнать о node js.
2. Я получил уведомление о том, что мой ответ был одобрен. Но теперь этого больше нет. Просто упомяну, что вы можете одобрить только один ответ. Вы можете проголосовать за несколько ответов.
3. В любом случае, для Node.js сначала сосредоточьтесь на ядре Node.js , модуль fs, модуль http, потоки. Попробуйте получить данные из стороннего API и использовать его. Только когда вы знаете ядро Node.js , переходим к веб-фреймворку, например express.js , сокет. ввод-вывод или любая другая тема.
4. Попробуйте создать сервер без дополнительных рамок. Понять respnse , запрос и т.д. Это все потоки. Также попытайтесь понять источник событий, такой как res.on() . Также поймите шаблон обратного вызова или обещания.
5. О, я не знал об этом. Я новичок в StackOverflow. Теперь я одобрил ваш ответ. Я постараюсь усвоить то, что вы сказали.
Ответ №2:
Nodejs — это просто язык сценариев на стороне сервера. Его основная работа заключается в обработке данных, поступающих со стороны клиента (т. Е. HTML) или интерфейса, и сохранении их в базе данных. После обработки данных из html их необходимо отправить обратно в браузер. При отправке данных с сервера клиенту отображаемый элемент должен иметь разные стили, а также js и image. Эти вещи должны быть общедоступными, потому что браузер должен иметь доступ к ним и обрабатывать их на стороне клиента. итак, для этого, а также изображений, css, js и документов мы используем public fonder.
или, проще говоря, те статические (постоянные) файлы, к которым обращается браузер (не сервер), хранятся в общедоступном каталоге.