Как получить запрошенную страницу (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);
    }
})

🤔 А знаете ли вы, что...
С помощью JavaScript можно создавать клиентские приложения для мобильных устройств с использованием фреймворков, таких как React Native и NativeScript.


52
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);