2014-02-02 3 views
1

Я конвертирую базу данных MS Access в webapp. Я использую Angular JS, Node JS с экспресс-картой и MySQL как базу данных.Сохранить в базе данных об изменении, угловом и узле js

В режиме доступа в ms у вас нет никаких функций редактирования/сохранения. Когда вы что-то редактируете, база данных меняется мгновенно. Мне это нравится. Ощущается плавно. Поэтому я хочу, чтобы это было так же в веб-приложении. Мой вопрос. Будут ли какие-либо проблемы с этим подходом в моем webbapp?

Это фрагмент кода моего узла расслоение плотной, который обновляет базу данных с restcall:

/* 
Post /api/products/ HTTP/1.1 
*/ 
exports.editProduct = function(req, res) { 
    console.log(req.body); 
    var post = [{title_en: req.body.title_en},req.params.id]; 
    if (connection) { 
    connection.query("UPDATE products SET ? WHERE id = ?", post, function(err, rows, fields) { 
     if (err) throw err; 
     res.contentType('application/json'); 
     res.write(JSON.stringify(rows)); 
     res.end(); 
    }); 
    } 
}; 

А на стороне клиента я использую объект за $ ресурса

 $scope.save = function(){ 
     $scope.product.$save(function(){ 
      console.log('Save successfull); 
     }); 
     }; 

И вид. У меня просто входы с нг-изменения:

<input ng-model="product.title_en" ng-change="save()". 

Будет ли это работать хорошо в режиме производства с парой сотен пользователей? Возможны ли блокирование/сбой и т. Д.?

+0

Единственное, что я вижу, это если (err) throw err; если есть ошибка, сбой сервера, поэтому измените его с помощью json-ответа с состоянием 500. Кстати, у экспресс есть встроенный способ вывода json http://expressjs.com/api.html#res.json – Whisher

ответ

0

Единственное, что я вижу, это если (err) throw err; , если произошла ошибка, сбой сервера, поэтому измените его с помощью ответа json с состоянием 500. Кстати экспресс имеет встроенный в пути для вывода JSON
Это лучше проверить title_en и идентификатор

exports.editProduct = function(req, res) { 
     console.log(req.body); 
     var post = [{title_en: req.body.title_en},req.params.id]; 
     if (connection) { 
     connection.query("UPDATE products SET ? WHERE id = ?", post, function(err, rows, fields) { 
      if (err) { 
       return res.json(500,{ error: 'Cannot update the product' }); 
      } 
      res.json(200,rows); 
     }); 
     } 

Иной вещь, попробуйте использовать restangular вместо ресурса это очень весело :) } ;

+1

И нет проблем, если 50 человек в то же время используют этот restcall, когда они печатают входные поля ? – Per

+0

Это проблема mysql, а не проблема с узлом, поэтому используйте транзакции – Whisher

Смежные вопросы