Express通过页面向用户发送信息
Express send information to user with a page
我有以下代码
var user = function(req,res,next) {
db.findOne({ username: req.params.uid }, function (err, docs) {
//error handaling
if(err){console.log(err)}
//check if user is real
if(docs === null){
res.end('404 user not found');
}else{
//IMPORTANT PART res.sendFile(__dirname + '/frontend/user.html');
}
});
}
app.get('/user/:uid',user);
不要担心数据库的东西。
我想知道如何将req.params.uid发送到客户端,以及如何从那里获得它。
非常感谢。
如果您的用户配置正确,每个请求都将有一个用户:
var user = function(req,res) {
db.User.findOne({ _id: req.user._id }, function (err, docs) {
//error handaling
if(err){console.log(err)}
//check if user is real
if(docs === null){
res.end('404 user not found');
}else{
res.json(docs)
}
});
然后你的api端点就是'/user/
在您的客户端中,只需向该端点发出GET
请求(可能使用AJAX),您的响应将是发出该给定请求的任何用户。
注意:除非定义中间件,否则不需要传入next
。
这只是基于我的评论的一个更完整的答案。
如果你想在用户提出的每个请求中存储一系列关于用户的信息,那么你就需要使用cookie。
当用户第一次向页面发出请求时,您将通过res.cookie
设置cookie。因此,在您的代码中,最后的if
语句看起来像:
if(docs === null) {
res.end('404 user not found');
} else {
res.cookie('uid', req.params.uid, { httpOnly: true });
//IMPORTANT PART res.sendFile(__dirname + '/frontend/user.html');
}
然后,在cookie到期前的下一个请求和未来请求中,您可以使用访问它
req.cookies.uid
然而,您需要预先在应用程序中的某个位置安装cookie-parser
中间件:
var cookieParser = require('cookie-parser');
app.use(cookieParser());
如果需要在客户端访问uid
的值,可以使用模板,也可以在使用res.cookie
设置httpOnly
时将其设置为false
。然后您可以使用document.cookies
访问cookie
。
查看此W3Schools页面以访问客户端上的cookie。
相关文章:
- 如何通过directline僵尸连接器发送用户信息
- 如何循环请求用户输入,直到用户在Acrobatneneneba XI中输入信息
- 在每个 AJAX 请求(Sencha Touch 2)中发送用户详细信息(会话令牌)
- 打开图形:Java脚本:必须使用活动访问令牌来查询有关当前用户的信息
- 从下拉框中选择用户信息,并使用进度计数器显示数据库中的选定项目
- 如何从帖子对象添加其他信息以在护照中注册用户
- 是否所有面向对象的语言都会在内存中创建大量重复信息
- 在/user/后面显示用户名的用户信息
- 当用户与谷歌地图交互时,如何从中获取信息
- 必须使用活动访问令牌来查询有关具有打开图的当前用户的信息
- Express通过页面向用户发送信息
- AngularJS如何解码带有令牌和内部用户信息的jsonp响应
- 如何从JavaScript访问Django登录的用户信息
- phonegap Facebook集成-从Facebook获取用户详细信息
- 正在尝试获取有关已验证用户的信息
- 如何使用html/html5中的用户输入获取完整的地理位置详细信息
- 如何将用户输入的信息从网站直接发送到我的电子邮件中
- 如何在角度 Js 中管理所有控制器的用户详细信息
- uiwebview JavaScript HTML 仅获取面向用户的正文文本
- 如何使html表格单元格信息只能由输入信息的用户访问