我正在将 MS Access 数据库转换为 Web 应用程序。我使用 Angular JS、带有 Express 框架的 Node JS 和 MySQL 作为数据库。
在 ms access 中,您没有任何编辑/保存功能。当您编辑某些内容时,数据库会立即更改。我喜欢这个。感觉很光滑。所以我想在网络应用程序中以同样的方式实现这一点。我的问题是。在我的 webbapp 中使用这种方法会有什么问题吗?
这是我的一段 Node js 代码,它通过休息调用更新数据库:
/*
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);
});
};
并且在 View 中。我只是通过 ng-change 输入:
<input ng-model="product.title_en" ng-change="save()".
这在有几百个用户的生产模式下效果好吗?阻塞/崩溃等的可能性是多少?
最佳答案
我唯一看到的是 if (err) throw err;
如果出现错误,服务器就会崩溃,因此请使用状态为 500 的 json 响应进行更改。
顺便说一句,express 有一个内置的方式来输出 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而不是资源,它很有趣:) };
关于node.js - 在更改、Angular 和 Node JS 上保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21516718/