在更改,角度和节点js上保存到数据库

时间:2014-02-02 21:51:54

标签: node.js angularjs express

我正在将MS Access数据库转换为webapp。我正在使用Angular JS,Node JS使用快速框架,MySQL作为数据库。

在ms访问中,您没有任何编辑/保存功能。编辑内容时,数据库会立即更改。我喜欢这个。感觉很顺滑。所以我希望在网络应用程序中使用相同的方式。我的问题是。在我的webbapp中这种方法会有任何问题吗?

这是我的节点js代码片段,它使用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();
    });
  }
};

在客户端,我使用$ resource对象

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

在视图中。我只是输入ng-change:

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

在生产模式下,这项工作能否满足几百个用户?是否有阻塞/崩溃的可能性?

1 个答案:

答案 0 :(得分:0)

我唯一看到的是if(错)抛出错误; 如果服务器崩溃时出现错误,请使用状态为500的json响应进行更改。 顺便说一句,快递有一种输入json的内置方式 最好验证title_en和id

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而不是资源它很有趣:)         };