如何使用node / Express存储用户数据

时间:2016-02-27 12:35:28

标签: node.js express

我正在开发我的第一个Node / Express应用程序并且我能够创建 具有用户身份验证功能的应用 但我不明白的是,如何将用户连接到他/她在登录后制作的内容(例如设置)以及如何/在何处保存它? 因此,如果另一个用户登录,他/她将使用他们所做的设置获取所选设备。

我的应用目标是控制树莓上的传感器,例如打开和关闭它们或从连接的网络摄像头拍摄照片。 那么有人可以解释如何处理用户的数据/设置等吗?

如果这是一个愚蠢的问题,我很抱歉。但我是新手,喜欢了解我在做什么,之前,我只做了HTML(S)CSS和简单的JS,我没有必要担心后端部分。

2 个答案:

答案 0 :(得分:3)

对于身份验证,最好使用Web令牌。

https://github.com/auth0/express-jwt

参考:

Node js, JWT token and logic behind

我认为这是一个用于身份验证的npm模块。您可以在github repo中获得更好的文档。

实现示例链接:

https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens

答案 1 :(得分:1)

对于在RPi或BONE上运行的一些Node应用程序,我使用MongoDB和Mongoose ODM。

可以找到更多资源herehere

然后,您应该创建用户实体/模型并使用标识符存储您的用户。

实施例

用户schema.js

module.exports = {
user: {
userId: Number,
name: String,
otherSettings: String
}
}

架构builder.js

var userSchema = require('./user-schema');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

module.exports = {
    userSchema: new Schema(userSchema.user)
}

用户repo.js

var schemaBuilder = require('./schema-builder');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydb');

var User = mongoose.model('User', schemaBuilder.userSchema);

module.exports = {
getUserById: function(id, callback){
User.findById(id, callback);
},
addNewUser: function(userJson, callback){
console.log('Adding new user');
var newUser = new User(userJson);
newUser.save();
}
};

服务器/ app.js

var userRepo = require('./repositories/user-repo');

// Let's say this logic is to look for an existing user
var user;
userRepo.getUserById(userId, function(user){

// If no user found, proceed with registration
// Else, proceed with auth or login. Then use and/or update user
//..settings as required
});

希望这有帮助!