Articles of mongoose restify

如何更新Node.js中的一对多关系?

我正在使用一个使用mongoose , mongodb和restify的Node应用程序。 我想知道在定义路由function时是否有从各种模型导入代码的好习惯。 这应该是一个相当直接的问题,我只需要指导,我就可以自己编写代码。 感谢您抽时间阅读。 我知道如何定义这种关系,但是我不确定我应该如何去build立真正的关系。 也就是说,换句话说,当一辆汽车被创造出来的时候,最好的方法是给它添加一辆汽车。 请注意,我正在试图保持这个api RESTful。 我有两个模型,我将不得不基于下面的模式,这是存储在db/schema.js : //schema.js var restify = require('restify'); var mongoose = require('mongoose'); var Schema = mongoose.Schema; var ObjectId = Schema.ObjectId; // User Schema exports.User = new Schema({ id: ObjectId, name: String, cars: [{ type: ObjectId, ref: 'Car' }], }); // Car Schema exports.Car = new Schema({ […]

位置对象预期,位置数组格式不正确

我花了这么直截了当的事情。 我只想在使用nodejs,mongoose,restify stack的用户模型上执行CRUD操作。 我的mongo实例在mongolab上。 用户应该包含一个“loc”字段。 用户架构如下: var mongoose = require('mongoose') var Schema = mongoose.Schema; var userSchema = new Schema( { email_id : { type: String, unique: true }, password: { type: String}, first_name: String, last_name: String, age: String, phone_number: String, profile_picture: String, loc: { type: {}, coordinates: [Number] } }); userSchema.index({loc:'2d'}); var User = mongoose.model('user', […]

提取mongoosew / Restify

我很好奇,如果任何人都可以提供一些最好的方式来抽象用Node.js + Restify + Mongoose构build的API。 来自MVC / PHP背景之后,发现Node应用程序没有string/定义的结构很有趣。 截至目前,我有我的app.js文件,自动加载我的routes.js文件,所有模型js文件等 这个困惑主要在于我的路线应该如何与来自Mongo的数据交互。 这是关于我的代码是如何布局的基本概要。 app.js : /** * Require Dependencies */ var restify = require('restify') , mongoose = require('mongoose') , config = require('./config') , routes = require('./routes'); /** * Create Server & Define Settings */ var server = restify.createServer({ name: config.name, version: config.version }); /** * Common Handlers […]

JavaScript泄漏内存(Node.js / Restify / MongoDB)

更新4 :通过在函数之外实例化restify客户端(请参阅controllers / messages.js),并在每次请求之后调用global.gc(),似乎内存增长率已经降低了很多(每10secs约500KB)。 但是,内存使用量仍在不断增长。 Update3 :来到这篇文章: https : //journal.paul.querna.org/articles/2011/04/05/openssl-memory-use/ 值得注意的是,我正在使用Restify的HTTPS。 更新2 :将下面的代码更新为当前状态。 我已经尝试用Express交换Restify。 可惜这没有任何区别。 似乎api调用链(restify – > mongodb – > external api)会导致所有内容都被保留。 更新1 :我用标准的MongoDB驱动程序replace了Mongoose。 内存使用似乎增长速度不够快,但泄漏仍然存在。 我一直在试图找出这个漏洞几天。 我使用Restify和Mongoose运行一个API,并且对于每个API调用,我都至less执行一次MongoDB查找。 我有大约1万2千个用户在一天内多次访问API。 我曾经尝试过 我已经将我的代码隔离到只使用Restify并使用ApacheBench发起大量请求(100k +)。 testing期间,内存使用量保持在60MB左右。 我已经隔离我的代码只使用Restify和Mongoose,并以上述相同的方式进行testing。 内存使用量保持在80MB左右。 我已经使用ApacheBench在本地testing了完整的生产代码。 内存使用量保持在80MB左右。 我已经自动倾倒堆的间隔。 我有最大的堆转储是400MB。 我只能看到有很多的string和数组,但我不能清楚地看到它的一个模式。 那么,有什么可能是错的? 我只使用一个API用户完成了上述testing。 这意味着mongoose只会一遍又一遍地抓住同一个文件。 与生产的区别在于很多不同的用户打了API意思,mongoose得到了很多不同的文档。 当我启动nodejs服务器时,内存很快增长到100MB-200MB。 最终稳定在500MB左右。 这是否意味着它泄漏每个用户的内存? 一旦每个用户访问API,它会稳定? 我在下面列出了我的代码,概述了我的API的一般结构。 我很想知道在我的代码中是否存在严重错误,或者是找出导致高内存使用率的其他方法。 码 app.js var restify = […]