Как заставить node.js работать с сервером общего хостинга? - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь запустить Restful Api на основе node.js и express.js в учетной записи общего хостинга на Bigrock.

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

Приложение отлично работает в моей локальной системе. Я подозреваю, что проблема в файле .htaccess

.htaccess

RewriteRule ^$ http://127.0.0.1:3000P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^$ /Website/ [L]

app.js

const express = require('express')
const db  = require('../models/index');
const bodyParser = require('body-parser');
const path = require('path');
const Jobs = require('../models').Jobs;

const app = express();

app.use(bodyParser.json());

app.use('/api/jobs', require('../routes/jobs'));

app.get('/', (req, res) => {
    res.send("<h1>Hello World !</h1>")
})

app.listen(3000);

Я смогу увидеть Hello World при посещении https://www.example.com:3000

Это моя структура каталогов

при посещении https://www.example.com:3000/api/jobs приложение должно иметь доступ к API, а при посещении https://www.example.com человек должен быть перенаправлен на веб-сайт.

У меня нет предварительных знаний о .htaccess, и я буду очень благодарен за любые предложения.

Спасибо.

1 Ответ

0 голосов
/ 13 января 2019

Вам не нужен файл .htaccess для запуска приложения Node (если только вы не используете Apache2 в качестве обратного прокси-сервера процесса Node, что маловероятно).

Вы можете проверить, действительно ли ваше приложение работает, выполнив запрос GET изнутри хоста: curl localhost:3000. Это должно вам что-то вернуть. Если у вас нет curl , вы можете попробовать wget .

Если это работает, то вам следует проверить настройки хоста, чтобы убедиться, что порт открыт. После подтверждения вам следует проверить, разрешается ли доменное имя "www.example.com" в соответствии с IP-именем экземпляра (который представляет собой набор чисел в виде 192.164.X.X). Вы можете попытаться получить доступ к IP-адресу вашего экземпляра напрямую: 192.164.X.X:3000.

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