Я пытаюсь развернуть простое приложение html / css / js в Heroku, и я настроил свой бэкэнд с Node.js следующим образом:
(сервер. js)
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
app.use(express.static('dice-game'));
//routes
app.get("/", function(req, res) {
res.render("index");
})
app.listen(port, function() {
console.log("app running");
})
(Procfile)
web: npm server.js
(пакет. json)
{
"name": "dice-game",
"version": "1.0.0",
"description": "js application",
"scripts": {
"start": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"engines": {
"node": "9.8.0"
},
"repository": {
"type": "git",
"url": "git+https://github.com/zay-asad/dice-game.git"
},
"author": "zayan asad",
"license": "ISC",
"bugs": {
"url": "https://github.com/zay-asad/dice-game/issues"
},
"homepage": "https://github.com/zay-asad/dice-game#readme",
"dependencies": {
"express": "^4.17.1"
}
}
Всякий раз, когда я пытаюсь запустить узел локально с "сервером узла. js" , я получаю следующее сообщение об ошибке:
Ошибка:
No default engine was specified and no extension was provided.
at new View (/Users/oas03/dice-game/node_modules/express/lib/view.js:61:11)
at Function.render (/Users/oas03/dice-game/node_modules/express/lib/application.js:570:12)
at ServerResponse.render (/Users/oas03/dice-game/node_modules/express/lib/response.js:1012:7)
at /Users/oas03/dice-game/server.js:10:9
at Layer.handle [as handle_request] (/Users/oas03/dice-game/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/oas03/dice-game/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/oas03/dice-game/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/oas03/dice-game/node_modules/express/lib/router/layer.js:95:5)
at /Users/oas03/dice-game/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/oas03/dice-game/node_modules/express/lib/router/index.js:335:12)
Кроме того, Heroku говорит, что мое приложение было успешно развернуто, но всякий раз, когда я нажимаю «открыть приложение» в пользовательском интерфейсе, я получаю это
application_error_heroku_ui
У кого-нибудь была эта проблема раньше? Буду признателен за любую помощь
ОБНОВЛЕНИЕ
Так что теперь я настроил ее так:
var path = require("path");
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
app.use(express.static('dice-game'));
//routes
app.get("/", function(req, res) {
res.sendFile('index.html', {
root: path.join('dice-game', "dice-game")
});
})
app.listen(port, function() {
console.log("app running");
})
Но я получаю Ошибка: ENOENT: такого файла или каталога нет, stat '/Users/oas03/dice-game/dice-game/dice-game/index.html'
Есть идея? @ Mark