所以我在这里迷失了方向,确实需要一些指导。
我一直在关注edX上的Microsoft“ NodeJS入门”课程。我们必须使用express创建一个非常简单的RESTful博客api。我一直在尝试使其在我的namecheap共享主机上运行。
我所做的:
npm install
。node server.js
以启动服务器。似乎可以开始。https://samkeene.co.uk:3000/blog-api
上监听的端口上导航至我的网站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);
这遇到了同样的麻烦!连接超时。我真的很茫然。
答案 0 :(得分:0)
可能与您正在监听的端口有关。
对于http,请在端口8080上监听
对于https,请在端口443上监听
答案 1 :(得分:0)
一旦我位于共享主机上,我也为此挠了一下头。
我设法通过运行带有NodeJS 9.11.2版本的cPanel设置NodeJS应用程序来运行以下命令:
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send('Howdy! req.url: '+req.url);
});
app.get('/users', function(req, res) {
res.send('Should send a bunch of users!');
});
app.get('/things/:name/:id', function(req, res) {
res.send('id: ' + req.params.id + ' and name: ' + req.params.name);
});
app.listen();
我不必关心端口号,也可以通过HTTPS访问这些端点。
以您为例,只需删除3001并查看它是否可以与共享主机一起使用。
希望有帮助。 :)