Tag: mysql

节点js(getConnection)

var nodePort = 3030; var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var db = require('mysql'); var dbPool = db.createPool({ host : 'localhost', user : 'root', password : '1234', database : 'test', port : 3306 }); app.use( bodyParser.json() ); app.get('/api/db', function(req, res){ res.setHeader('content-type', 'application/json'); dbPool.getConnection(function(objErr, objConn){ if(objErr){ sendError(res, 503, 'error', 'connection', […]

Sequelize不能创build表,但是当我在MySQL CLI中运行相同的工作

我正在使用sequelize并遇到一个奇怪的错误: Executing (default): CREATE TABLE IF NOT EXISTS `groups` (`id` INTEGER NOT NULL auto_increment , `groupname` VARCHAR(255), `groupkey` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB; Executing (default): CREATE TABLE IF NOT EXISTS `users` (`id` INTEGER NOT NULL auto_increment , `username` VARCHAR(255) UNIQUE, `password` VARCHAR(255), `salt` VARCHAR(255), `token` VARCHAR(255), `group_id` […]

在NodeJS的准备查询中设置多个字段

我在Node中使用'mysql'库 这是我使用,而不是准备好的声明,工作得很好: connection.query("update table set col1=? where col2=1",[val1],function(err,rows){ //connection.release(); if(!err) { //further code } }); 但是,这不适用于2个不知情的情况: connection.query("update table set col1=? where col2=?",[val1],[val2],function(err,rows){ //connection.release(); if(!err) { //further code } }); 错误消息显示“未定义不是函数”。 我究竟做错了什么?

包含文件时node.js上的引用错误

我是node.js新手。 我有两个文件。 他们是index.js和db.js 我的index.js是 var connection = require('./db.js'); device = new Device({ id: 93, name: 'test1' }); device.save(); 我的db.js是 var mysql = require('mysql2'); var mysqlModel = require('mysql-model'); var appModel = mysqlModel.createConnection({ host : 'localhost', user : 'root', password : 'root', database : 'db', }); var Device = appModel.extend({ tableName: "DeviceTable", }); 在运行节点index.js的时候,我收到了error device = new […]

如何访问RowDataPacket mysql-node.js

connection.query(' SET @update_id := 0; UPDATE relations set x1 = ?, y1 = ?, id = (SELECT @update_id := id) WHERE element_to =?; SELECT @update_id;',[data.x2,data.y2,id],function(err,result){ if(err){console.error(err);} else{console.log(result);console.log(result.@update_id);} }); 我从查询执行中得到以下结果: [ RowDataPacket { '@update_id': 'WAbWA1WA5WA2WA8WAdWA4WA9' } ] ] 如何访问@update_id字段以将值存储在variables中。 我知道这些是对象,我尝试以下访问它们,如下所示: results.@update_id; 但是当我尝试logging该值时,我得到了未定义的值。 如何获得价值?

重复密钥更新节点Mysql只更新唯一行

我正在使用MySQL 5.7与节点JS 6.11.0,并试图更新一个UNIQUE MySQL列,每当我插入一个有冲突的行。 但是,当我尝试插入有冲突的logging时,只有现有的logging更新为NULL ,不会发生insert 。 这是我的代码 pool.getConnection(function(err, connection) { var newClass = req.body; var query = `INSERT INTO classes SET ? ON DUPLICATE KEY UPDATE teacher_id = NULL`; connection.query(query, newClass, function(err, result) { console.log(result); if(result.affectedRows >= 1) { res.status(201).end(); res.json(result); } }); connection.release(); });` 我必须运行查询两次要插入的行; 第一次冲突的列被设置为空,那么当我再次运行相同的查询时,行被插入,因为没有冲突。 我已经采取了生成的SQL,并直接从MySql控制台运行它,我仍然需要运行查询两次插入新行。 我不明白为什么这样做。 sql语句是 INSERT INTO classes SET […]

如何包装一个asynchronous调用来同步行为?

目前,这是我如何使用node-mysql执行查询 client.query( sql, function( error, result ) { console.dir( result ); }); 我想同步做到这一点 var result = client.querySync( sql ); console.dir( result ); 我明白为什么阻塞在节点是坏的,但我(几乎)长大,足以知道什么时候没事,什么时候没有。 我只打算在初始化阶段,在任何事件循环之外进行同步调用。 有谁知道我怎么能做到这一点? 编辑… 东西沿线… client.querySync = function( sql ) { var called = false; var result; while ( typeof result == 'undefined' ) { if ( ! called ) { called = […]

Sequelize – 为DATE字段使用UNIX时间戳

有没有办法强制Sequelize使用UNIX Timestamp作为默认的时间格式createdAt / updatedAt时间戳和自定义的Sequelize.DATE字段types? 谢谢! PS我正在使用MySQL

节点Mysqlasynchronous多个查询

我想知道什么是最好的方式来处理嵌套的mysql查询是nodejs。 所以像这样的东西: connection.query("SELECT * FROM blogs ORDER BY time DESC", function(err, blogs, fields) { for (blog in blogs) { connection.query("SELECT * FROM tags WHERE blog_id='blog.id' ", function(err, tags, fields) { blog.tags = tags }); } res.send(blogs) }); 由于asynchronous性质,这显然不起作用。 获取标签之前,结果已经返回。 我一直在阅读节点和callback,承诺似乎是要走的路。 但是我无法看到在这个小例子中我将如何最好地使用它们。 谢谢!

使用关联来创build对象

我正在尝试保存与其关联的续集模型。 所有的协会都是一对一的。 用数据库中的关联检索模型工作得很好,但插入它们是另一回事,文档只是让我更加困惑。 这是我的插入方法: models .radcheck .create(user, { include: [{model: models.skraningar}, {model: models.radusergroup}, {model: models.radippool}] }) .then(success, error); 我已经看到了很多方法来做到这一点,无论是在文档和这里在计算器上,到目前为止,他们没有任何意义。 任何人都在意为我清理东西?