Tag: mysql

Sails.js查询关联的值

我正在使用Sails.js版本0.10.0-rc4 。 所有的模型都使用sails-mysql。 我试图查询一个模型,有一个“一对多”关联到另一个模型(查询发生在“多”一侧)。 它看起来像这样: Post.find() .where({ category: category_id }) .populate("category") .exec( … ) 这给了我一个空数组,但是当我离开.populate("category")我得到正确的结果集。 我知道我可以离开.populate("category") ,然后分别获取每个相关的类别对象,但我想知道是否有更好的解决scheme,这个问题。

在sequelize中检查mysql连接

我有一个非常简单的程序,我创build一个Sequelize实例,然后我执行一个MySQL数据库的原始查询。 这种情况是,当MySql启动并运行没有问题,我可以执行查询没有问题。 但是,当MySql没有运行,那么查询不会发出任何错误,直到查询超时已经达到,然后它发出一个ETIMEOUT错误。 但那不是真的发生了什么事情。 我希望查询发出ENOTFOUND错误或类似的东西,如果mysql不运行,所以我可以pipe理错误,并执行不同的操作,如果Mysql已经closures或Mysql非常繁忙,并有一个非常大的响应时间。 我要做些什么来检查Mysql是否启动并运行,而不必等待超时exception。 sequelize = new Sequelize(db_name, db_user, db_pass, opts); sequelize.query('SELECT * FROM some_table').success(function(result) { console.log(result); }).error(function(err) { console.log(err); });

在Nodejs和Express上使用Mysql(node-mysql)

林新节点和expression,我有一个关于使用MySQL的问题。 我有一个login表单发布到“/login”。 我使用node-mysql模块。 app.get('/site', function(req, res){ if (req.session.is_logged_in === true) { res.render('site/start', { title: 'News' }); } else { res.redirect('/'); } }); app.post('/login', function(req, res){ client.query('SELECT id, user_name FROM user WHERE email="' + req.body.login + '" AND password="' + Hash.sha1(req.body.password) + '"', function (err, results, fields) { if (err) { throw err; } if (results[0]) […]

Nodejs同步对于每个循环

我想为每个循环做一个,但它有同步运行。 循环的每一次迭代都会执行一个http.get调用,并将返回json以将值插入到数据库中。 问题是,for循环asynchronous运行,并导致所有的http.gets一次运行,我的数据库不会最终插入所有的数据。我使用async-foreach来尝试做我想做的这样做,但我不必用它,如果我能以正确的方式做到这一点。 mCardImport = require('m_cardImport.js'); var http = require('http'); app.get('/path/hi', function(req, res) { mCardImport.getList(function(sets) { forEach(sets, function(item, index, arr) { theUrl = 'http://' + sets.set_code + '.json'; http.get(theUrl, function(res) { var jsonData = ''; res.on('data', function(chunk) { jsonData += chunk; }); res.on('end', function() { var theResponse = JSON.parse(jsonData); mCardImport.importResponse(theResponse.list, theResponse.code, function(theSet) { console.log("SET: " […]

date格式在node.JS中

我正在使用MySQL数据库,因为我有名字request_date一个字段。 该字段的types是时间戳,存储在该字段中的数据格式为2012-05-16 14:59:18 。 但是,当我通过Node.JS检索相同的数据时,数据在浏览器中显示为 Fri Jun 08 2012 15:16:50 GMT+0530 (India Standard Time) 为什么这种格式变化正在发生? 我写了这个查询: SELECT biz_registration.reqid,biz_registration.request_date,biz_registration.req_status,biz_registration.annual_cost,biz_registration.rid,biz_contact.first_name,biz_contact.last_name FROM biz_registration INNER JOIN biz_contact ON biz_registration.reqid=biz_contact.reqid ORDER BY biz_registration.request_date DESC limit '+start+','+mlimit+'' 我正在使用的HTML代码是, options +='<div class="column" style="background-color: #E1E1E1;width: 100px;">'+result.reqid+'</div>'; options +='<div class="column" style="background-color: #E1E1E1;width: 160px;">'+result.request_date+'</div>';

在哪里存储SQL命令执行

由于内联mysql查询,我们面临代码质量问题。 有自已写的mysql查询确实混乱的代码,也增加了代码库等 我们的代码杂乱无章 /* beautify ignore:start */ /* jshint ignore:start */ var sql = "SELECT *" +" ,DATE_ADD(sc.created_at,INTERVAL 14 DAY) AS duedate" +" ,distance_mail(?,?,lat,lon) as distance,count(pks.skill_id) c1" +" ,count(ps.profile_id) c2" +" FROM TABLE sc" +" JOIN " +" PACKAGE_V psc on sc.id = psc.s_id " +" JOIN " +" PACKAGE_SKILL pks on pks.package_id = psc.package_id […]

MySQL查询10表(Sequelize或原始查询)

为了返回下面的JSON示例,我们需要查询10个表,同时查找两个表之间的值。 我的SQL知识是有限的,所以我们在这里寻求帮助。 JSON: { project: 1, name: "BluePrint1", description: "BluePrint 1 Description", listWorkPackages: [ { id: 1, name: "WorkPackage 1 Name", description: "WorkPackage 1 Description", type: "WorkPackage Type", department: "WorkPackage Department", status: "Workpackage work status" }, { id: 2, name: "WorkPackage 2 Name", description: "WorkPackage 2 Description", type: "WorkPackage Type", department: "WorkPackage Department", status: "Workpackage […]

Sequelize:错误:错误:Table 1没有关联到Table 2

我正在尝试使用sequelize创build以下关联,但我不断收到以下错误“错误:错误:客户没有关联到订单!”。 根据我在文档中find的内容,我有双向关联。 我对这个问题可能是困惑的,因为当我查看数据库表时,我可以看到外键。 对于这个例子,我试图拉取与特定订单相关的订单和客户。 从技术上讲,我可以做三个分离数据库拉,但这似乎效率不高,而不是联接。 'use strict'; module.exports = function(sequelize, DataTypes) { var user = sequelize.define('user', { username: DataTypes.STRING(30), //remove password: DataTypes.STRING(255), emailaddress: DataTypes.STRING(255), firstname: DataTypes.STRING(30), middlename: DataTypes.STRING(30), //remove lastname: DataTypes.STRING(30), approve: DataTypes.BOOLEAN, roles: DataTypes.STRING(50), isactive: DataTypes.BOOLEAN }, { classMethods: { associate: function(models) { // associations can be defined here this.hasMany(models.order); } } }); user.hook('afterCreate', […]

在节点中从文件vs数据库提供内容

我正在制作一个新的静态网站,长到50多个静态网页。 所以我做了一个JSON文件与旧的内容,所以新的网站可以更多的CMS(与普通网页的模板),所以后端得到更多的干。 我想知道是否可以从JSON中将这些内容提供给我的观点,或者我是否应该在MySQL数据库中提供这些内容? 我正在使用Node.js,并且在节点中,我可以将该JSON文件存储在内存中,以便在用户请求数据时不会读取文件。 这是否有正确的做法? 他们之间的服务caching的JSON文件或通过MySQL的性能差异? 有问题的文件是大约400Kb。 如果文件大小与另一种技术的select有关?

NodeJS中的后缀:内部JOIN实现失败

我有三个表承包商,这两个项目和连接表project_contractors和我创build模型,并写下如下关系, Contractor.hasMany(Project, {joinTableName: 'projects_contractors'}) Project.hasMany(Contractor, {joinTableName: 'projects_contractors'}) 我想访问这个基于承包商的项目意味着内部联接。 核心查询:从承包商selectc.id,c.name,p.id,p.name c内部联接projects_contractors pc上c.id = pc.contractor_id内部联接项目p上p.id = pc.project_id 我在执行下面的代码时失败了。 “required”是一个关键字,用于内部JOIN,但如果我们保留,则不起作用。 Contractor.findAll({ include: [Project, {required: false}]}).success(function(list){ console.log("hi") res.send(204) }) 如果不需要,它会在项目和承包商上创build一个左外部JOIN。 build议我为上述senario示例。