controllers/topic.js/get_topics_by_query() 里面获取topic列表先取array(_id), 再根据_id分N次调用get_topic_by_id()取单个topic,get_topic_by_id()里面又取了user,tag等,这样多了很多次数据库查询。 为什么需要这样设计?
- 因为
get_topic_by_id是先写成的,所以get_topics_by_query要调用它需先获取id列表 - 你会发现几乎每个对话题的请求都是需要话题的
author和tags,所以在get_topic_by_id里附带读取这些数据
我想问下这个文件中nodeclub / controllers / topic.js
var models = require(’.../models’), Tag = models.Tag, Topic = models.Topic, TopicTag = models.TopicTag, TopicCollect = models.TopicCollect;
models.Tag models.TopicCollec 是如何加载的? 我看了下/models 下是一些文件,打开看了,但不太明白这里的 require(’.../models’), 是如何工作的,哪位大大能给解释下,感谢,我刚接触NodeJS。
nodejs与java,c#等的有点不一样,exports出来的就是"包"可见了,然后引用到这个包就可以引用到这些抛出来的"对象",无论是方法还是对象,而像完全面向对象的java那些是类级别的,通过类去引用,所以在写nodejs时要规划好哪里往外exports,不然就会越来越乱。
@sumory 看到了,我没有注意下面的 index.js require(’.../models’) 会默认查找.../models.js 然后再 .../models/index.js 是这个意思吧?
@mejinke var models=require(’.../models’)会找到models这个包,然后这个包里的*.js里exports的东西都可以被引用到。
- 可以参看Models文件模块
var check = require(‘validator’).check, sanitize = require(‘validator’).sanitize; 这个validator模块,我好像没有找到,谁知道的?
昨天晚上下载了一个到虚拟机里面,ubuntu10,10.安装的时候告诉我缺少openssl,但是明明我装了的,后来又下载,又编译......,今天早上的时候,看到了干净的网站,只是自己注册了一个admin,就是不给我发个激活邮件。
不知道现在这个论坛注册完之后,是多少时间内激活有效,感觉应该一个小时或者是30分钟内,激活为有效,否测删除掉,不然有的注册了,可能没有收到激活邮件(各种原因),另外不知道可不可以支持重新发送激活邮件之类的。
因为源码的conf里 邮件地址写的是别人的。 你可以改成自己的。对于目前你无法激活的问题。你可以直接update users表 把active字段设置为true即可
mongoose这个模块不支持windows吗?npm install mongoose 搞不定啊 Not compatible with your operating system or architecture
@muyuan 老大,一直在研究node_club源码,但是对用邮件的发送功能总是不能发送成功,一直提示验证错误信息,详细的出错信息,老大可以参考我下面的这篇文章:enter link description here,非常期待老大的回复和解答,先谢谢呢!!!
研究了两天,很不错哦!!!
不过关于修改依赖模块connect:if (req.body && req.body.user_action === ‘upload_image’) return next();这样不太好吧,直接包含了upload_image字段。要修改的话是否应该添加个灵活一点的方法?
Error: Cannot find module 'mongoose’ 这个错误好烦人,折腾我一天了。 大家都是怎么解决的,请赐教,谢谢大家。 npm install mongoose 提示成功! mongodb也处于启动状态,在mongo中也切换到node_club了 。 但是 使用node app.js启动还是包 找不到 ‘mongoose’