Я очень новичок в программировании серверов и JavaScript в целом, но в настоящее время я пытаюсь настроить сервер REST API и подключить его к моей базе данных sql, на данный момент я делаю все локально. Я использую Ubuntu 18.04 при использовании NODE js. Мне удалось успешно создать REST API и подключиться к нему через URL-адрес веб-страницы или с почтальоном. Я создал базу данных сервера SQL через мой терминал CMD и создал тестовые данные на нем. Я искал руководства для подключения API REST к базе данных, но я думаю, что информация, которую я даю API для подключения, - это то, где происходит моя проблема. Я начинаю с этого ниже как мой server.js, где у меня есть папка Controller и файл ProductController.js, где я обрабатываю маршрут / api / products.
var http = require('http');
var express = require('express');
var app = express();
var port = process.env.port || 3000;
var productController = require('./Controller/ProductController')();
app.use("/api/products", productController);
app.listen(port, function(){
var datetime = new Date();
var message = "Server running on Port:- " + port + " Started at :- " +
datetime;
console.log(message);
});
Ниже приведен мой файл ProductController.js. Проблема может быть здесь, но я считаю, что это мой следующий файл с именем connect.js, таблица в моей базе данных sql называется «data», отсюда и часть «SELECT * FROM data». Когда я пытаюсь получить эти данные в почтальоне, отображается ошибка, которую я установил «Ошибка при вставке данных». поэтому я считаю, что при запуске я не получаю данные из sql, поэтому conn.close () не достигается.
var express = require('express');
var router = express.Router();
var sql = require("mssql");
var conn = require("../connection/connect")();
var routes = function()
{
router.route('/')
.get(function(req, res)
{
conn.connect().then(function()
{
var sqlQuery = "SELECT * FROM data";
var req = new sql.Request(conn);
req.query(sqlQuery).then(function (recordset)
{
res.json(recordset.recordset);
conn.close();
})
.catch(function (err) {
conn.close();
res.status(400).send("Error while inserting data");
});
})
.catch(function (err) {
conn.close();
res.status(400).send("Error while inserting data");
});
});
return router;
};
module.exports = routes;
Это мой файл connect.js ниже. У меня есть пароль для root, который не ***, но правильный на моей машине. Я изменил подключаемый модуль root на mysql_native_password в терминале mysql. Я думаю, что сервер: часть не так, я пытался закомментировать это, но по-прежнему нет связи. У меня нет SQL Server Management Studio и я не нашел способ получить имя моего сервера sql через терминал. Я видел примеры, которые, кажется, располагают информацией о том, что вам нужно дать API для подключения. Если у кого-то есть понимание этого, это также будет оценено. Моя конечная цель - в конечном итоге создать маршруты GET и POST для базы данных и функцию для манипулирования данными POST, но сейчас я просто пытаюсь связать вещи, чтобы я мог поиграться с данными, полученными GET. Спасибо за любую информацию, которую вы можете дать, она очень ценится.
var sql = require("mssql");
var connect = function()
{
var conn = new sql.ConnectionPool({
host: 'localhost'
user: 'root',
password: '********',
server: 'mysql',
database: 'test'
});
return conn;
};