Articles of node orm2

node-orm-transaction:是否可以在一个mysql连接中为所有客户端执行事务?

目前我只连接到数据库一次,当我开始我的节点应用程序,刚刚我加载我的所有模型之后,我的应用程序已准备好通过socket.io rpc处理任何请求。 我需要实现的逻辑 – 如果客户端执行复杂的请求,并且如果链中至less有一个操作失败 – 例如 – 所有sql请求都成功完成,但没有发送带有新密码的电子邮件 – 回滚所有内容并显示错误。 我问,因为我记得 – 例如在PHP中,所有进程与db有不同的连接,这就是为什么所有的转换都是独立的,不能交叉的,但是对于节点来说,它只是一个具有asynchronous请求的进程,理论上可以交叉。 这只是我在node.js上的第一个应用程序。 是否有可能使所有客户端1 MySQL连接,或者我需要连接到MySQL,从socket.io中的每个请求中的远程文件检索所有模型?

如何在node-orm2中使用逻辑OR运算符来查找数据库中的logging?

我在Node ORM上工作。 我想find基于逻辑OR条件的logging。

节点js表示试图将orm json传递给客户端

在我的app.js question = require('./routes/question_api'), app.use(orm.express("mysql://root@127.0.0.1/daat", { define: function (db, models, next) { var question_model = db.define('questions', { id : Number, ….. more definitions } }); models.question = question_model; next(); } })); 在我的question_api.js var questions = require('../lib/questions/questions.js'); //NEW Question //Get Question by ID //Get Question By Category exports.list = function(req, res){ res.json(questions.list_top_rates(req, res)); }; 在我的questions.js exports.list_top_rates […]

创build新模型不起作用 – 没有错误

我在我的项目中使用mysql的node-orm2。 我已经创build了数据库表,我可以查询/查找我的数据库中的数据。 但是,当我想要插入新的数据,没有任何反应 – 没有错误的callback,什么都没有。 这是相关的代码: 模型类: module.exports = function (orm, db) { var Comment = db.define('comment', { body: {type: 'text'} }); }; 模型文件夹中的Index.js: var orm = require('orm'); var settings = require('../config/settings'); var connection = null; function setup(db, cb) { require('./comment')(orm, db); return cb(null, db); } module.exports = function (cb) { if (connection) return cb(null, […]

节点和MySQL – 解决“太多连接”的问题

我有一个使用MySQL数据库在Node.js和Express上运行的应用程序。 我使用的驱动程序是node-orm2 。 我们的用户不断报告“ 太多连接 ”错误,我已经诊断出这个问题,但我不知道如何解决这个问题。 基本上发生的是,每当新用户访问该网站时,驱动程序为他们创build一个新的线程/进程 。 我可以做一个SHOW PROCESSLIST查询数据库,它会显示在那里的Time为0 。 如果用户进行另一个需要数据库的操作,那么同一个线程将被重新使用 ,并且Time会回到0 。 但是,如果他们不这样做, 线程就会保持活动状态 (使用“ Sleep Command ”), Time 。 数据库的最大连接限制为250 ,超时为7200 。 所以基本上,如果在2个小时内有超过250人使用这个网站,我们会看到“连接太多”的错误。 我尝试使用连接池 ,但这使问题变得更糟。 每当新用户使用数据库时,它就创build了10个线程,当达到7200秒超时时, 线程重新生成 。 我在这里有什么select? 我目前的方法是每半小时运行一个计划任务来closures已经打开太久的线程,但有没有更好的方法? 我正在使用以下设置: db.settings.set("properties.association_key", "{name}Id"); db.settings.set("instance.autoFetch", true); db.settings.set("instance.returnAllErrors", true); db.settings.set("instance.cache", false);

REFERENCE KEY在node-orm2中

我正在研究基于node.js的REST API,我select了postgresql数据库来存储数据。 假设这个数据库有两个表名User和Comment 。 任何Comment属于一个User ,当我们决定删除一个User ,他/她的Comment必须删除。 所以,我devise了我的桌子如下: CREATE TABLE User( user_id SERIAL, username VARCHAR(32) NOT NULL, password VARCHAR(32) NOT NULL, CONSTRAINT pk_user PRIMARY KEY (user_id), CONSTRAINT uq_user UNIQUE (username) ) CREATE TABLE Comment( comment_id SERIAL, user_id INTEGER NOT NULL, content TEXT NOT NULL, CONSTRAINT pk_cmnt PRIMARY KEY (comment_id), CONSTRAINT fk_cmnt FOREIGN KEY (user_id) REFERENCES […]

Node.js orm2 – 检索OneToMany关系中的新关联的麻烦

我正在使用node-orm2来感受在RESTful API中使用的感觉。 我在后端使用Postgres数据库。 我试图在他们的文档上的一个变体,我有一个人和一个任务之间的OneToMany关系与一个单一的文件中的以下内容: app.js 'strict' // Based on http://blog.modulus.io/nodejs-and-express-create-rest-api // but with my own twists! var express = require('express'); var app = express(); var orm = require('orm'); // Helpers var collectionize = function(target){ if(typeof target == 'Object'){ return [target]; } return target; }; // Configure the app with any middleware app.use(express.bodyParser()); app.use(orm.express("postgres://rodrigomartell:password@localhost/postgres",{ define : […]

ORMError NO_SUPPORT:不支持连接协议 – 你安装了PostgreSQL的数据库驱动吗?

我想在Ubuntu 13.10上部署一个nodejs应用程序。 我已经在我的本地mac上testing过了(运行良好)。 但是当我尝试在我的Ubuntu服务器上运行它,我得到了这个: [ORMError NO_SUPPORT: Connection protocol not supported – have you installed the database driver for postgres?] at Object.exports.connect (/home/ubuntu/node_modules/orm/lib/ORM.js:138:21) at Object.module.exports (/home/ubuntu/node_modules/orm/lib/Express.js:12:6) at Object.exports.express (/home/ubuntu/node_modules/orm/lib/ORM.js:39:30) at Object.<anonymous> (/home/ubuntu/www/sher/nodejs/app.js:30:13) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) error: Forever detected script exited with […]

有没有办法在node-orm中同步调用每个函数?

我遇到了node-orm2asynchronous行为的问题。 我有这样的查询: req.models.posts .find(…) .order('-whatever') .each(doMagic) //Problem happens here .filter(function(post) { … }) .get(callback); function doMagic(post, i) { post.getMagic(function(err, magic) { … }); }; 我的问题是,因为post.getMagic()里面发生的事情是asynchronous的,我的callback函数在doMagic完成之前执行。 检查源代码我validation了这是正常的行为,但由于这是一个快速的应用程序,我的服务器响应错误的信息。 我尝试使用waitfor来调用getMagic同步,没有成功。 这可能是我错过的东西。 有没有办法使eachfunction像一个同步mapfunction工作?

为什么安装程序中的顺序如此困难?

我基于包含在库中的node-orm2示例项目构build了一个节点快速应用程序。 我有一个讨厌的“错误”,我的返回值看起来很乱。 User“ User.hasOne('permission', db.models.permission, {required: true, autoFetch: true}); 一个“公司”有一个所有者,但是这是相反的,所以“用户”有多个“公司”。 Company.hasOne('user', db.models.user, { required: true, reverse: 'companies', autoFetch: true}); 第一次设置: function setup(db, cb) { require('./company')(orm, db); require('./user')(orm, db); require('./permission')(orm, db); return cb(null, db); } 搞砸了结果: { "id": 1, "username": "l.vanbuiten", "name": "Lex", "surname": "van Buiten", "age": "1992-05-13T22:00:00.000Z", "createdAt": "2015-12-21T23:25:04.000Z", "permission": { "id": 1, "username": "l.vanbuiten", […]