用户提交页面的节点堆栈

我打算创build一个“雅虎答案”或“维基答案”types的网站,人们可以注册并发布问题,也可以回答问题。 (这个网站将面向提问和回答math/化学/物理作业的问题,它将被configuration为使用户可以在问题和答案部分中inputLaTeX标记)。

实际上,它将成为回答作业问题的堆栈,在这里人们可以提出问题,发布解决scheme,并提出问题和解决scheme,比如如何在stackoverflow上。

我在http://www.university-answers.com/上有了一个原型,但我还没有实现用户注册,或用户提交了问题或答案。

我已经考虑使用Passport进行用户身份validation,并试图遵循一些获取用户身份validation并将其存储在mongodb上的教程 (如本教程 )。 我可以获取用户名和密码进行身份validation并存储在数据库中,以便以后可以login。 但是,我不知道如何跟踪每个用户提交的问题和提交的答案。 例如,在stackoverflow我可以去我的帐户的页面,看看我已经提交了什么问题,我已经提交了什么答案。 我是否需要在数据库中存储用户的意见和问题以及用户名和密码?

编辑:作为研究后的后续问题。 我阅读了数据模型devise,并且我推断可以为数据库创build以下结构:

user{ _id:<object1>, username: input-data, password: however-this-is-done, questions[]: <object2>[], //an array of <object2> type objects? if this is possible solutions[]: <object3>[], //an array of <object3> objects, which are submitted //solutions. if it is possible to create arrays of "references" } question{ _id:<object2>, user_id:<object1>, body:input-data, solutions[]:<object3>[], //array of references? } solutions{ _id:<object3>, user_id:<object1>, question_id:<object2>, body:user-input } 

用户validation后,应该能够在其user_id下发布。 如果用户发布一个问题,它应该运行一个函数,创build一个question对象,其user_id属性设置为客户端的用户信息。 question对象应该有一组solution对象,每个solution对象都有数据引用回当前user_id和解决scheme的question对象。 如何在node.js中编写函数来完成这个function?

在你的User模型中,你可以创build一个像这样的问题的数组;

 var QuestionSchema = new mongoose.Schema({ body: String }); var Question = mongoose.model('Question', QuestionSchema); var LocalUserSchema = new mongoose.Schema({ username: String, salt: String, hash: String, ref: [{type: mongoose.Schema.Types.ObjectId, ref: 'Question'}] }); var Users = mongoose.model('userauths', localUserSchema); 

查看本教程以及;

http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local