Я очень новичок в Express.js, но сейчас я создал API базы данных SQL Server.Он отлично работает на локальном хосте, но теперь я развернут на Heroku.В то время как мое приглашение CMD открыто, мой API работает нормально, но когда он закрывается, я получаю Внутреннюю ошибку сервера.
Ранее я создал тест с использованием Mongo в качестве DB, mongoose и развернул его в Heroku иAPI все еще работает, даже если приглашение не открыто.Кто-то знает, нужно ли мне создавать другой документ .js, как в mongoose, или продолжать работать с моим API?
Это мой код в документе .js (server.js):
const express = require('express');
const bodyParser = require('body-parser');
const sql = require('mssql');
const app = express();
app.use(bodyParser.json());
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, contentType,Content-Type, Accept, Authorization");
next();
});
const dbConfig = {
user: "daUser",
password: "daPass",
server: "daServer",
database: "DaDB"
}
const executeQuery = function (res, query) {
sql.connect(dbConfig, function (err) {
if (err) {
console.log(err);
res.send(err);
}
else {
// create Request object
var request = new sql.Request();
// query to the database
request.query(query, function (err, result) {
if (err) {
console.log(err);
res.send(err);
}
else {
res.send(result);
}
});
}
});
}
app.get("/api/HolidayBaseApi", function (req, res) {
var query = "SELECT * FROM [HolidaysBase]";
executeQuery(res, query);
})
const PORT = process.env.PORT || 8080
app.listen(PORT, () => {
console.log("App now running on port", PORT);
});
Мой package.json следующий:
{
"name": "holidaysbaseapi",
"version": "1.0.0",
"description": "Api of Holidays",
"main": "server.js",
"scripts": {
"start": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Chuck Villavicencio",
"license": "ISC",
"dependencies": {
"body-parser": "^1.18.3",
"express": "^4.16.4",
"mssql": "^4.3.0"
},
"engines": {
"node": "8.11.3",
"npm": "5.6.0"
}
}
На Heroku я установил Heroku CLI;вошел в систему, клонировал репозиторий и развернул мои изменения.
Я использую Express.js, Node, SQL Server и Heroku