gpt4 book ai didi

node.js - 让 https express Node 应用程序在共享主机上工作

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:03 25 4
gpt4 key购买 nike

所以我在这里不知所措,真的需要一些方向。

我一直在 edX 上关注微软的“NodeJS 简介”类(class)。我们必须使用 express 创建一个非常简单的 RESTful 博客 API。我一直试图让它在我的 namecheap 共享主机上运行。

我做了什么:

  • 关注 these instructions使用最新稳定版本的 node 安装 nvm。
  • 关注 this question让我的 express 应用程序与 https
  • 一起工作
  • 将应用程序上传到托管服务器。
  • SSH 进入托管服务器,运行 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);

    这遇到了同样的麻烦!连接超时。我在这里真的很迷茫。

    最佳答案

    可能与您正在监听的端口有关。

    用于 http 监听 8080 端口

    对于 https 监听端口 443

    关于node.js - 让 https express Node 应用程序在共享主机上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53896561/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com