Получение приложения https express node для работы на виртуальном хостинге - PullRequest
0 голосов
/ 22 декабря 2018

Так что я в растерянности и мне действительно нужно какое-то направление.

Я слушал курс Microsoft "Введение в NodeJS" по edX.Нам пришлось создать очень простой RESTful API-интерфейс для блога с использованием Express.Я пытался заставить его работать на моем общем хостинге namecheap.

Что я сделал:

  • Следовал этим инструкциям для установки nvm споследняя стабильная версия узла.
  • После этого вопроса , чтобы заставить мое экспресс-приложение работать с https
  • Загрузил приложение на хост-сервер.
  • SSH'd на хост-сервер, запустил npm install.
  • запустил node server.js, чтобы запустить сервер.Кажется, все в порядке.
  • Попробуйте перейти на мой веб-сайт через порт, который прослушивает приложение https://samkeene.co.uk:3000/blog-api
  • Ожидается увидеть "Hello World", но вместо этого получить тайм-аут.

server.js

const routes = require('./routes');
const express = require('express');
const logger = require('morgan');
const bodyParser = require('body-parser');
const errorhandler = require('errorhandler');
const https = require('https');
const fs = require('fs');
const path = require('path');

let store = {
    posts: []
};

let key = fs.readFileSync(path.join(__dirname,'../../ssl/keys/c07f7_003d1_ecb06ccb2afcd72cfa43b6011c82464e.key'));
let cert = fs.readFileSync(path.join(__dirname,'../../ssl/certs/samkeene_co_uk_c07f7_003d1_1574035199_5b90fc5e96ac0c534d2ee116af6fd342.crt'));
let options = {
    key: key,
    cert: cert
};

let app = express();
app.use(bodyParser.json());
app.use(logger('dev'));
app.use(errorhandler());

app.use((req, res, next) => {
    req.store = store;
    next();
});

app.get('/', (req, res) => {
    res.send('hello world')
});

app.get('/posts', routes.Posts.getPosts);
app.post('/posts', routes.Posts.addPost);
app.put('/posts/:postID', routes.Posts.updatePost);
app.delete('/posts/:postID', routes.Posts.removePost);

app.get('/posts/:postID/comments', routes.Comments.getComments);
app.post('/posts/:postID/comments/', routes.Comments.addComment);
app.put('/posts/:postID/comments/:commentID', routes.Comments.updateComment);
app.delete('/posts/:postID/comments/:commentID', routes.Comments.removeComment);

let server = https.createServer(options, app);

server.listen(3000, () => {
    console.log("server starting on port : " + 3000)
});

Остальные файлы можно найти в его git repo .(или перейдите к https://www.samkeene.co.uk/blog-api/)

Буду очень признателен за некоторую помощь.

Редактировать: Я решил просто попробовать, если я смогу запустить еще более простое приложение:

server.js

const express = require('express');

let app = express();

app.get('/', (req, res) => {
    console.log("hello");
    res.send('hello world')
});

app.listen(3001);

Это приводит к той же проблеме! Тайм-аут соединения. Я действительно в замешательстве.

1 Ответ

0 голосов
/ 22 декабря 2018

Возможно, связано с портом, который вы слушаете.

Для прослушивания http на порт 8080

Для прослушивания https на порт 443

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