感谢您花时间帮助我
我正在部署一个nodejs表达js项目 这些是我所做的步骤:
1-将端口更改为:process.env.PORT 代码:
const PORT = process.env.PORT || 9000;
app.listen(PORT , function() {
console.log('Application is listening on 9000');
});
2- create Procfile with:web:node server.js
3-确保在包json中,npm start命令指向" node path / server.js" 服务器在本地工作
4-重要提示:我正在从前端向服务器发送AJAX请求以获取数据 我已经阅读了你应该添加0.0.0.0
的文档$.ajax({
url: "0.0.0.0/hotels",
cache: false,
type: 'GET',
success: function(result) {
bla bla ....
}
});
我也尝试在创建
之后添加heroku的url 提前谢谢 祝你有美好的一天答案 0 :(得分:0)
尚未解决,但我组织了一些有用的heroku命令
git remote -v git remote rm heroku heroku创造 git push heroku master heroku ps:scale web = 1 heroku开放 heroku logs --tail heroku运行bash
答案 1 :(得分:0)
您的代码看起来很好(0.0.0.0
除外 - 只需使用/
之类的相对路径。我会确保你真的推动了那里你所做的改变。如果你运行heroku run bash
,你看到你的Procfile了吗?在该环境中运行node server.js
时,它是否成功运行?
我见过Heroku客户遇到这样的问题,但实际情况是他们在本地的代码没有正确发送到Heroku。
答案 2 :(得分:0)
您好@jmccartie感谢您的回复,但仍然无效 它可能是静态__dirname吗?我开始质疑代码的每个部分:D
我改变了路径,只是为了确保我理解正确 它曾经是:" http://localhost:9000/data/hotels" 现在是:" / data / hotels"
你能介意看看我的代码吗? 只需仔细检查我提到的部分 https://github.com/hibaAkroush/herokuNode 我将命名文件以使您更容易1-根目录中的Procfile
服务器/ index.js第24行中的2-服务器
3-前端(我发送ajax get请求的地方)client / home.js第6行
4- packagejson第10行:"开始":"节点服务器/ index.js"
谢谢
答案 3 :(得分:0)
好的我修好了...... wohoo! 不知道我修了哪件东西
但我所做的是:
1-我将服务器移动到根目录,当然更改了代码,所以它仍然可以比我在本地测试它确保
2-推上github
3-添加./到procfile所以它变成了
web:node ./index.js 而不是web:node index.js
谢谢大家!