Как получить запрошенную страницу (node.js)

Я работаю с серверами Node.js. Когда я захожу на сервер, код, res.write("What ever text you choose") запустится, и я получу только «Какой бы текст вы ни выбрали», независимо от того, какой путь я наберу. Я знаю, что вы можете «записать» файл, чтобы каждый раз, когда вы заходите на сервер, он открывал вам эту страницу. Проблема, с которой я столкнулся, заключается в том, что сервер предоставит мне только один файл. Как я могу запросить другой файл на основе URL-адреса?

Например, когда я наберу localhost:9090, я получу запрошенный файл. Но если я наберу localhost:9090/index.html или localhost:9090/funnyFile/Jokes.html или localhost:9090/myProjects/poj1/index.html, я просто получу тот же файл, как я могу получить доступ к смешному файлу и моиПроекты?

Вот код моего узла-сервера.

const http = require('express')
const port = 9090

// Create a server object:
const server = http.createServer(function (req, res) {

    // Write a response to the client
    res.write("I choose this text");
    

    // End the response 
    res.end()
})

// Set up our server so it will listen on the port
server.listen(port, function (error) {

    // Checking any error occur while listening on port
    if (error) {
        console.info('Something went wrong', error);
    }
    // Else sent message of listening
    else {
        console.info('Server is listening on port' + port);
    }
})

Что ж, ВЫ должны это сделать. Вам необходимо определить набор «маршрутов», описывающих запросы, которые вы готовы обрабатывать. Обычно существует способ заставить сервер обслуживать статические файлы, просто указав каталог.

Tim Roberts 15.08.2024 05:00
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы импортировали express, но не используете его. http не предоставляет методов для обслуживания статических файлов/маршрутизации. Вместо этого используйте express для их обработки, например:

const app = express();

// Serve static files from a directory (e.g. 'public')
app.use(express.static(path.join(__dirname, 'public')));

// Define your routes
app.get('/', (req, res) => {
    res.send('Some welcome text.');
});

// Example with 'funnyFile' and 'myProject'
app.get('/funnyFile/Jokes.html', (req, res) => {
    res.sendFile(path.join(__dirname, 'public', 'funnyFile', 'Jokes.html'));
});

app.get('/myProjects/poj1/index.html', (req, res) => {
    res.sendFile(path.join(__dirname, 'public', 'myProjects', 'poj1', 'index.html'));
});

Вам следует определить маршруты для этих файлов, используя app.use, и получить запрос с помощью router.get, тогда, когда вы запросите этот маршрут, вы получите к нему доступ.

   const express = require("express");
   //router object
    const router = express.Router();
    
    //routes GET | POST |UPDATE | DELETE ==>CRUD
    router.get(".path or url", call back function);

Другие вопросы по теме