小编Amo*_*rni的帖子

检查客户端的登录状态

我想了解在客户端检查登录状态的最佳做法是什么.我要做的是检查用户的登录状态,如果他没有使用JavaScript登录打开的弹出框(登录框).

我可以想到2个选项

  1. 对服务器进行AJAX调用并获取登录状态.
  2. 在HTML页面中有一个变量,并在客户端使用JavaScript检查此变量.当然我不相信这个检查,我仍然在服务器端的控制器中进行了所有必要的检查.

选项1很好,但它可以增加一些延迟/延迟,因此它可能不是用户体验方面的最佳选择.或者我错了,有一个好的服务器(我打算使用亚马逊网络服务)这种延迟将是如此最小,用户将无法理解它(问题可能看起来很傻但这是我的第一个网站开发,所以请理解:))

我看不到选项2的任何问题,如果我错了请纠正我.正如我所说,我试图了解最佳实践.

javascript client-side login-control

5
推荐指数
1
解决办法
2271
查看次数

如何在侦听时获取Restify服务器的确切IP地址?

请考虑以下用于其余API节点服务器的代码.

var restify = require('restify');

var server = restify.createServer();

server.get('/echo/:name', function (req, res, next) {
  res.send({name: req.params.name});
  next();
});

server.listen(8080, function () {
  console.log('%s listening at %s', server.name, server.url);
});
Run Code Online (Sandbox Code Playgroud)

使用节点运行该服务器:

$ node echo.js
restify listening at http://0.0.0.0:8080
Run Code Online (Sandbox Code Playgroud)

它显示0.0.0.0哪个是错的.

任何人都可以在开启时如何控制台登录服务器的确切IP?

谢谢


更新:在执行下面的代码时,我得到了下面提到的输出,这再次变得困难,选择哪个IP?

    rest_server.listen(config.appPort, function () {
      var adrs = require('os').networkInterfaces();
          console.log(adrs);
          console.log('%s listening at %s', rest_server.name, rest_server.url);
    });
Run Code Online (Sandbox Code Playgroud)

输出:

{ 'Local Area Connection': [ { address: '192.168.3.60', family: 'IPv4', internal
: false } ],
  'Loopback Pseudo-Interface 1': …
Run Code Online (Sandbox Code Playgroud)

node.js restify

5
推荐指数
2
解决办法
6539
查看次数

如何根据密钥对GSON阵列进行排序?

考虑以下是我的数组

[
  {"id":10,"name":"name10","valid":true},
  {"id":12,"name":"name12","valid":false},
  {"id":11,"name":"name11","valid":false},
  {"id":9,"name":"name9","valid":true}
]
Run Code Online (Sandbox Code Playgroud)

创建了一个JsonArray,就像下面的代码一样:

//Create a JSON Parser using GSON library 
objJsonParser = new JsonParser();
String strArrayText = [{"id":9,"name":"name9","valid":true}, ...]
JsonArray jsonArrayOfJsonObjects = objJsonParser.parse(strArrayText).getAsJsonArray();
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试jsonArrayOfJsonObjects根据name字段进行排序.

期望的输出:

[
  {"id":9,"name":"name9","valid":true},
  {"id":10,"name":"name10","valid":false},
  {"id":11,"name":"name11","valid":false},
  {"id":12,"name":"name12","valid":true}
]
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助解决与Java&Gson相关的最佳应用程序吗?
非常感谢您的投入.

java sorting gson

5
推荐指数
1
解决办法
7881
查看次数

Node.js + MongoDB + Express + Mongoose.如何通过简单的代码要求特定文件夹中的所有模型?

考虑这是我的文件夹结构

express_example
|---- app.js    
|---- models    
|-------- songs.js    
|-------- albums.js    
|-------- other.js    
|---- and another files of expressjs
Run Code Online (Sandbox Code Playgroud)

我的文件songs.js中的代码

var mongoose = require('mongoose')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;

var SongSchema = new Schema({
name: {type: String, default: 'songname'}
, link: {type: String, default: './data/train.mp3'}
, date: {type: Date, default: Date.now()}
, position: {type: Number, default: 0}
, weekOnChart: {type: Number, default: 0}
, listend: {type: Number, default: 0}
});

mongoose.model('Song', SongSchema);
Run Code Online (Sandbox Code Playgroud)

在文件albums.js中

  var mongoose = …
Run Code Online (Sandbox Code Playgroud)

models mongoose mongodb node.js

3
推荐指数
2
解决办法
8132
查看次数

不应在Node.js中的单行上使用三元运算符.为什么?

请考虑以下示例代码:

1.Sample

var IsAdminUser = (User.Privileges == AdminPrivileges)
  ? 'yes'
  : 'no';
console.log(IsAdminUser);
Run Code Online (Sandbox Code Playgroud)

2.Sample

var IsAdminUser = (User.Privileges == AdminPrivileges)?'yes': 'no';
console.log(IsAdminUser);
Run Code Online (Sandbox Code Playgroud)

第二个样本我非常满意并且我以这种方式编码,但是在没有任何支持性原因的情况下,它被告知错误的做法.

为什么建议不在Node.js中使用单行三元运算符?

任何人都可以说明原因吗?

提前感谢您的大力帮助.

standards coding-style node.js

3
推荐指数
2
解决办法
1万
查看次数

如何从MongoDB + Node.js + Mongoose获取修改的json输出

考虑我的集合在MongoDB中存储如下:

  { 
    _id: 'Unique_Value',
    FieldMONGO1: 'ngfn',
    FieldMONGO2: { SomeKey: ['val1','val2','val...']  },
  }
Run Code Online (Sandbox Code Playgroud)

当我在Mongoose的Model Instance上使用find方法检索时.我得到以下JSON输出:

  { 
    _id: 'Unique_Value',
    FieldMONGO1: 'NAME_value',
    FieldMONGO2: { SomeKey: ['val1','val2','val...']  },
  }
Run Code Online (Sandbox Code Playgroud)

两者完全相同.

问:有没有什么办法让我可以改变字段名称,如FieldMONGO1FirstName,FieldMONGO2NewName&_idIdentityNo

所以我的输出将是这样的:

  { 
    IdentityNo: 'Unique_Value',
    FirstName: 'ngfn',
    NewName: { SomeKey: []  },
  }
Run Code Online (Sandbox Code Playgroud)

知道解决方案:是按原样获取JSON输出,然后在Node.js代码中更改字段(属性)名称.但问题在于,它变成了阻塞代码.如果请求大量数据,这可能会在服务器上产生开销.

任何人都可以帮我找出一些有效的方法吗?

提前谢谢

json mongoose mongodb node.js

2
推荐指数
1
解决办法
1380
查看次数

如果同一用户从不同的浏览器或计算机登录,则强制注销.Node.js + Express + Socket.IO

场景:考虑一个与用户名和密码匹配的登录系统(Node.js + Express + Socket.IO),并允许用户访问经过身份验证的页面.登录系统将会话ID存储为客户端的cookie,并在服务器上对每个经过身份验证的页面请求进行验证,并相应地允许/禁止.

问题:现在,假设同一用户从不同的机器或浏览器登录,我希望以前的用户推送到会话过期页面并显示信息,例如:"您可能从不同的浏览器或机器登录.请不要分享密码.欲了解更多信息,请访问:SomeLinkHere"

注意:我只是不想让用户登录会话无效,当用户从其他浏览器或机器登录时,我想将用户推送到会话过期页面,即使用户没有点击任何链接或请求任何进一步的身份验证页面.

这背后的主要目的是:避免这样的情况,例如:"如果用户正在观看一些敏感数据,例如实时报告(即socket.io上的仪表板),并将密码分享给其他人."

问题:由于socket.io已经用于报告实时数据,如何在不重载现有socket.io连接的情况下实现这一点?

authentication logout node.js express socket.io

2
推荐指数
1
解决办法
2068
查看次数

如何计算MongoDB中日期字段上的文档数量

场景:考虑一下,我在MongoDB中有以下集合:

{
    "_id" : "CustomeID_3723",    
    "IsActive" : "Y",
    "CreatedDateTime" : "2013-06-06T14:35:00Z"
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道特定日期创建文档的计数(比如2013-03-04)所以,我试图使用聚合框架找到解决方案.

信息:到目前为止,我已经构建了以下查询:

    collection.aggregate([
        { $group: {
            _id: '$CreatedDateTime'
            }
        },
        { $group: {
            count: {  _id: null, $sum: 1 }
            }
        },
        { $project: {
            _id: 0,
            "count" :"$count"
            }
        }
    ])
Run Code Online (Sandbox Code Playgroud)

问题:现在考虑上面的查询,它给我计数.但不仅仅基于日期!它花费时间考虑到独特的数量.

问题:考虑到该字段具有ISO日期,任何人都可以告诉我如何仅根据日期(即排除时间)来计算文档?

mongodb mongodb-query aggregation-framework

2
推荐指数
1
解决办法
3889
查看次数

如何使用Node.js + express在Handlebar中的数组内循环数组

我有JSON数组如下:

{outer:[
    {
      Key1:"ID001", 
      Key2:[
             {
               innerKey1:"Myval1",
               innerKey2:"Myvalue2"
             }
            ]
    }
]}
Run Code Online (Sandbox Code Playgroud)

现在在我的HTML文件中:

<div>
    {{#each outer}}
        <b>key1:</b> {{this.Key1}} <br/>
        {{#each this.Key2}}
           <b>InnerKey1:</b> {{this.innerKey1}} <br/>
        {{/each}}
    {{/each}}
</div>
Run Code Online (Sandbox Code Playgroud)

但它没有表现出任何内在价值.任何人都可以请求如何循环内部数组对象(即Key2上面).我需要为此编写一个单独的帮助程序吗?

node.js handlebars.js

2
推荐指数
1
解决办法
5742
查看次数

Node.js 是单线程的,这是否意味着我们不能在不同的线程中运行多个 Node.js?

我在一篇文章中读到 Node.js 是单线程的。问题是如果我们在不同的端口运行多个 Node.js 文件怎么办?它们是否有自己的线程,或者全部都在 Node.js 主线程下?有人可以阐明我现在处于黑暗面的主题吗?

multithreading node.js

2
推荐指数
1
解决办法
937
查看次数