Отображение изображения и использование двух файлов. html на одном сайте express и node.js - PullRequest
0 голосов
/ 08 мая 2020

Эй, мне нужно создать относительно простой форум с express. js, body-parser и jsdom. У меня есть сайт, и я localhost действительно показывает мне веб-сайт, но одно из изображений не отображается, а другой файл html, который должен быть добавлен вместе с тем, который уже существует, этого не делает.

Изображение того, как сейчас выглядит мой сайт

Изображение того, как выглядит второй html файл

Мой текущий код;

'use strict';

const express = require('express');
const bodyParser = require('body-parser');
const jsDOM = require('jsdom');
const fs = require('fs');

let app = express();

app.listen(81, function() {
     console.log('Server is running on port 81!');

});
// first middleware with next()
app.use( function(request, response, next) {
    console.log(request.method, request.url);
    next();
});

// two middleware to one from express and one from  body-parser
app.use('/public', express.static(__dirname + '/Project-1')); 

app.use(bodyParser.urlencoded({extended: true}));

app.get('/', function(request, response) {
    response.sendFile(__dirname + '/index.html')
    response.sendFile(__dirname + '/write.html')

});

Изображение, которое не отображается, является изображением .svg. Код, который, я считаю, мне нужно где-то добавить, но я не уверен, где именно и как мне добавить его в свой код.

// Что должно произойти с пост-вызовом на /..

app.post('/', function( request, response) {

let htmlCode = fs.readFileSync(__dirname + '/static/html/index.html');
let serverDom = new jsDOM.JSDOM(htmlCode);
let bodyNodeRef = serverDom.window.document.querySelector('body');

И я также считаю, что мне нужно сообщить серверу, что я отправляю ему, когда дело доходит до svg и другого типа информации и изображений.

if(ext === 'html') {
                    res.writeHead(200, { 'Content-Type': 'text/html' });
                }

                if(ext === 'css') {
                    res.writeHead(200, { 'Content-Type': 'text/css' });
                }

                if(ext === 'svg') {
                    res.writeHead(200, { 'Content-Type': 'image/svg+xml' });
                }

                let content = fs.readFileSync(filnamn).toString();
                res.write(content);
                res.end();

У меня также есть блог-пост. js код;

// Create a  js-array
var blogPosts = new Array();

// Put in the first post in the array
blogPosts.push({
    nickName: "Otto Kaski",
    msgSubject: "..........!",
    timeStamp: '1939-02-18',
    msgBody: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean feugiat faucibus sem, i.`
});

//Export the array for import in another file.
module.exports = { 'blogPosts': blogPosts };
...