Задать вопрос
@kpanyushin

Вопрос по стеку angular node mysql?

Всем привет!

Помогите, пожалуйста, разобраться. Хочу сделать CRUD приложение (тот же туду, например) на angular, как основу, так скажем. Хочу сделать возможность работы с бд (чтение, запись, изменение, удаление) с помощью данных технологий (angular, node+express, mysql). В основном, конечно, интересуют данные операции со стороны angular, но нужен и какой-то backend, с которым на данный момент пытаюсь разобраться)

Предположим, есть RESTful API на nodejs + express, в качестве СУБД используется mysql. Код следующий:
var app   = require('express')();
var http = require('http').Server(app);
var mysql = require('mysql');
var bodyParser = require("body-parser");
var connection = mysql.createConnection({
		host     : 'localhost',
		user     : '',
		password : '',
		database : 'books',
	});
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
connection.connect();

	
app.get('/',function(req,res){
	var data = {
		"Data":""
	};
	data["Data"] = "Welcome to Book Store DEMO...";
	res.json(data);
});

app.get('/book',function(req,res){
	var data = {
		"error":1,
		"Books":""
	};
	
	connection.query("SELECT * from book",function(err, rows, fields){
		if(rows.length != 0){
			data["error"] = 0;
			data["Books"] = rows;
			res.json(data);
		}else{
			data["Books"] = 'No books Found..';
			res.json(data);
		}
	});
});

app.post('/book',function(req,res){
	var Bookname = req.body.bookname;
	var Authorname = req.body.authorname;
	var Price = req.body.price;
	var data = {
		"error":1,
		"Books":""
	};
	if(!!Bookname && !!Authorname && !!Price){
		connection.query("INSERT INTO book VALUES('',?,?,?)",[Bookname,Authorname,Price],function(err, rows, fields){
			if(!!err){
				data["Books"] = "Error Adding data";
			}else{
				data["error"] = 0;
				data["Books"] = "Book Added Successfully";
			}
			res.json(data);
		});
	}else{
		data["Books"] = "Please provide all required data (i.e : Bookname, Authorname, Price)";
		res.json(data);
	}
});

app.put('/book',function(req,res){
	var Id = req.body.id;
	var Bookname = req.body.bookname;
	var Authorname = req.body.authorname;
	var Price = req.body.price;
	var data = {
		"error":1,
		"Books":""
	};
	if(!!Id && !!Bookname && !!Authorname && !!Price){
		connection.query("UPDATE book SET BookName=?, AuthorName=?, Price=? WHERE id=?",[Bookname,Authorname,Price,Id],function(err, rows, fields){
			if(!!err){
				data["Books"] = "Error Updating data";
			}else{
				data["error"] = 0;
				data["Books"] = "Updated Book Successfully";
			}
			res.json(data);
		});
	}else{
		data["Books"] = "Please provide all required data (i.e : id, Bookname, Authorname, Price)";
		res.json(data);
	}
});

app.delete('/book',function(req,res){
	var Id = req.body.id;
	var data = {
		"error":1,
		"Books":""
	};
	if(!!Id){
		connection.query("DELETE FROM book WHERE id=?",[Id],function(err, rows, fields){
			if(!!err){
				data["Books"] = "Error deleting data";
			}else{
				data["error"] = 0;
				data["Books"] = "Delete Book Successfully";
			}
			res.json(data);
		});
	}else{
		data["Books"] = "Please provide all required data (i.e : id )";
		res.json(data);
	}
});

http.listen(8080,function(){
	console.log("Connected & Listen to port 8080");
});

В postman все работает, но как теперь связать получившееся с angular? Для начала, хотя бы просто вывести в таблицу (ID, книга, автор, цена). Как с помощью указанного выше кода открывать index.html, что необходимо добавить? В index.html файле будет таблица примерно такая:
<table>
    <tr>
        <th>Id</th>
        <th>Book name</th>
        <th>Author name</th>
        <th>Price</th>
    </tr>
    <tr ng-repeat="book in listOfBooks">
        <td>{{book.id}}</td>
        <td>{{book.bookName}}</td>
        <td>{{book.authorName}}</td>
        <td>{{book.price}}</td>
    </tr>
</table>


Код app.js, который должен выводить данные из json файла в таблицу
$scope.getBooks = function() {
    	var httpRequest = $http({
    		method: 'GET',
    		url: 'json', // (какой URL должен быть тут, чтобы получить JSON файл который генерирует API?)
    		data: data // что необходимо вставить сюда?
    	}).success(function(data, status) {
    		$scope.listOfBooks = data;
    	});
    };

В правильном ли направлении я вообще двигаюсь?

Возможно, есть какие то заглушки / эмуляторы бекэнда и не будет необходимости разбираться во всем этом, а спокойно делать приложение на angular, которое будет позволять совершать crud операции?
  • Вопрос задан
  • 474 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы