Bas*_*asj 8 javascript ajax node.js express
在JavaScript(客户端)+ PHP(服务器)网站中,我有这个方案用于将" online notepad
"(在#textbox
textarea中)保存到服务器:
// client-side
$("#save-button").on('click', save);
function save(e) {
$.ajax({ type: "POST",
url: "/php/save.php",
data: { projectname: $('#projectname').text(),
data: $('#textbox').text() },
success: function(data) { alert('Data saved'); },
error: function(data) { console.log(data); } });
}
Run Code Online (Sandbox Code Playgroud)
这在服务器端(/php/save.php
):
<?php
$projectname = $_POST['projectname'];
$data = $_POST['data'];
// save this into database
?>
Run Code Online (Sandbox Code Playgroud)
node.js(客户端+服务器)中等效的"post to server and save on server"方案是什么?(express
例如使用)
这个任务有一个众所周知的node.js" pattern
"吗?
$.ajax(...)
在客户端和服务器上的node.js上使用是常见/良好的做法吗?我认为node.js引入了一种新的思维方式,不再需要ajax ......我错了吗?
- node.js(客户端+服务器)中等效的"发布到服务器并保存在服务器上"方案是什么?(以快递为例)
特定于您的代码,它应该看起来像这样.
客户端:-
$("#save-button").on('click', save);
function save(e) {
$.ajax({ type: "POST",
url: "/php/save",
data: { projectname: $('#projectname').text(),
data: $('#textbox').text() },
success: function(data) { alert('Data saved'); },
error: function(data) { console.log(data); } });
}
Run Code Online (Sandbox Code Playgroud)
和服务器端: -
router.post('/php/save', function(req, res) { // server side
var projectName = req.body.projectname;
var data = req.body.data;
// save the data here to database
});
Run Code Online (Sandbox Code Playgroud)
这里我在节点中收到post数据的方式,我需要body-parser模块,所以这应该添加在顶部,
var bodyParser = require('body-parser');
Run Code Online (Sandbox Code Playgroud)
这将解析您的http请求正文,以便您可以直接访问参数req.body.data.
- 在客户端和服务器上的node.js上使用$ .ajax(...)是常见/好的做法吗?
$ .ajax(...)在客户端: - 当然,为什么不... $.ajax(...)
当我们使用不同的后端技术,如.net或java时,我们不会使用它们?所以不需要改变你的前端,只是你在后端使用不同的技术
服务器上的节点: - 现在这是基于意见的,节点是新的,我们javascript开发人员喜欢节点,因为它是服务器端和客户端上的单一技术,我会说节点太棒了......但还有其他人会说节点是垃圾.我宁愿跳过回答这一部分.
- node.js引入了一种新的思维方式,不再需要ajax ......
我想你指的是websockets
.是节点是一种不同的思维方式.这并没有真正取代ajax,你可以在这里找到一些信息
WebSockets的目的是在浏览器和服务器之间提供低延迟,双向,全双工和长时间运行的连接.WebSockets为浏览器应用程序开辟了新的应用程序域,这些应用程序使用HTTP和AJAX(交互式游戏,动态媒体流,桥接到现有网络协议等)实际上是不可能的.
如果您不需要WebSockets提供的特定优势,那么坚持使用AJAX和Comet等现有技术可能是一个更好的主意,因为这可以让您重新使用并与现有的大型工具,技术,安全机制生态系统集成,知识库(即stackoverflow上的人们比WebSockets更了解HTTP/Ajax/Comet)等.
这不是node.js特有的,你仍然可以在其他技术中实现websockets.
所以node.js引入了一种新的思维方式,使得ajax不再需要 - 再错了!
归档时间: |
|
查看次数: |
1219 次 |
最近记录: |