node.js - 使用 GET 请求中的数据,无需重新加载用户页面

标签 node.js express get socket.io

所以,主题是 Node.js + express + ejs + socket.io + mongoose 所有最新版本上的单页 Web 应用程序。

让我们想象用户在浏览器地址栏中输入“www.app.com/data”。我想根据此数据从数据库获取响应,将其发送回用户并为他呈现基本的“www.app.com”页面,并在其中实现数据库响应。

我对两个选项感到好奇:有或没有页面重新加载的最佳方法是什么,例如,如果用户已经在页面上并且我不想重新加载它 - 只需相应地更改数据库响应。

我可以从他的 get 请求中获取这些数据:

app.get('/:id', function (req, res) {
     console.log('got' + req.params.id); 
     ///some db magic here... poof, response ready///   
})

但是接下来我该怎么办呢?我正在考虑通过 sockets.io 发送响应,无论如何我都在使用它,但是我怎样才能在不重新加载用户页面的情况下结束这个 GET 呢?如果我必须发回一些东西,我可以通过使用 ejs 再次渲染此页面来响应,但是在重新加载时我不能依赖 sokets、cos - 他与它们断开连接。

你能解释一下我的困惑吗?

最佳答案

最后,我在 URI 中使用 URI 片段标识符,即 #
如果用户输入 http://YourAwesomeApp/#hashtag,您可以使用此监听器捕获 hashtag:

window.onhashchange = function () {        
        var hash = location.hash.substr(location.hash.indexOf("#") + 1);
        //now hash = hashtag, do your stuff.      
};

它完全符合我的需求。

请注意,如果您通过 JS 更改哈希值 (location.hash = some),window.onhashchange 也会触发。

关于node.js - 使用 GET 请求中的数据,无需重新加载用户页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28661766/

相关文章:

node.js - 防止 sequelize 在 node.js 应用程序中删除数据库

javascript - 将字符串点符号转换为 JavaScript 对象

javascript - Nodejs服务器当前调用另一个js文件

php - PHP如何处理重复的URL参数?

node.js - 错误或规范更改(Twitter API 1.1 的)

javascript - 如何控制函数中传递的变量?

node.js - Mongoose 用新旧之和更新变量

javascript - 将对象插入数组

PHP $_GET 变量检查

javascript - ajax(PHP 和 Javascript)出现问题 - 如何正确传输?