Tag: mysql

使用Node.js和MySQL查询函数callback来确定范围

我正在尝试使用Node和MySQL编写JavaScript对象作为购物任务的一部分。 我想通过使它比function性编程更多的OOP来testing自己。 我正在创build一个交易对象的构造函数,其中包含所选项目的属性,数量和总成本。 此外,将是显示项目,select项目和购买项目的方法。 开始时,我想也有一个唯一的itemID数组,这将是用户select一个有效的产品的validation。 我有一个范围问题,如果在对象的作用域中定义this.ids []是未定义的。 我的解决scheme将在本地定义它,并将该数组作为parameter passing,以避免范围界定。 这个解决scheme也不会允许我访问Transaction对象的作用域variables。 this.listProducts = function(connection) { connection.query("SELECT * FROM products WHERE stock_quantity>0", function(err,res) { if (err) throw err; this.ids = []; for (var i = 0; i < res.length; i++) { this.ids.push(res[i].item_id); console.log(res[i].item_id + " " + res[i].product_name + " " + res[i].price); } // res.forEach(function (element) […]

为应用程序定义一个数据库,如果有效的数据库不存在

所以我正在编写这个需要特定数据库格式的NodeJS / MySQL应用程序。 这个东西需要运行在我不想做太多事情的机器上,如果有任何设置的话。 当然,我可以每次通过代码并手动创build适当的数据库。 但是我想知道是否有可能以SQL Server中不存在的方式来定义数据库,它是按需构build的。 例如,现在我会这样做: var conn = mysql.createConnection({ host: 'localhost', user: 'password', password: 'username', database: 'app-db' }); 如果数据库的app-db不存在,我想创build数据库,一次性定义所有的表和字段,如果我的应用程序运行在没有适当的数据库的服务器上,它只是构build一个空白的。

testing将数据保存在数据库中

您好我试图运行摩卡和柴testing来testing我的节点js路由器,它保存在mysql数据库中的用户,然后返回相同的数组。 我现在面临的问题是,当我从本地运行数据库时,我不想将信息保存在数据库中,而当我使用像Travis / Ci这样的连续集成软件时,testing失败,因为没有数据库连接。 我想知道如何testing数据库保存与当前没有实际保存到数据库。 基本上意味着有一个虚拟的虚拟数据库来保存或返回保存。 我读了sinon.js可以帮助,但我不知道如何使用它。 这是我的代码 var expect = require('chai').expect; var faker = require('faker'); const request = require('supertest'); const should = require('should'); const sinon = require('sinon'); const helper = require('../../models/user'); describe('POST /saveUser',()=>{ it('should save a new user',(done)=>{ var fake = request(app) .post('/saveUser') .send({ Owner : faker.random.number(), firstname : faker.name.firstName(), lastname : faker.name.lastName(), email:faker.internet.email(), […]

Sequelize – Mysql的外键添加约束失败与ALTER TABLE

我试图用下面的Sequelize模型创build两个表: const Sequelize = require('sequelize'); module.exports = function (db) { const Product = db.define('product', { intProductID: { type: Sequelize.INTEGER(11), primaryKey: true, autoIncrement: true, allowNull: false }, strName: { type: Sequelize.STRING }, douPrice: { type: Sequelize.DOUBLE } }); return Product; } const Sequelize = require('sequelize'); module.exports = function(db){ const User = db.define('user', { intUserID:{ type: Sequelize.INTEGER, […]

在node.js上unit testingmysql回滚

我在一个节点项目中使用mysql。 我想unit testing一个JavaScript函数,使一个SQL交易。 如果事务成为locking监视器的受害者,则该函数具有处理失败的代码。 还是呢? 因为我是unit testing,所以我只在一个本地数据库上进行一次事务处理,所以不会出现死锁,对吗? 我怎样才能testing死锁处理,如果它永远不会发生? 有没有办法强制它发生? 例: thisMustBeDoneBeforeTheQuery(); connection.queryAsync(/*This is an update*/).catch(function(err) { undoThatStuffIDidBeforeTheQuery(); // I hope that function worked, because my unit tests can't // make a deadlock happen, so I can't know for sure. }

Javascript – 为每个用户创build独特的文件

我正在开发一个应用程序,允许用户在他们的网站上embedded一个简短的代码,我的软件将捕获他们所有的表单数据并将其放置在我们的数据库中。 我需要为每个用户生成一个唯一的JS文件,并使用存储在mysql数据库中的dynamicvariables为每个文件添加一些通用代码。 例如: main.js – 这个文件包含通用的代码 userid.js – 这个文件是在用户创build一个帐户时生成的,这个文件从main.js中获取所有内容,用数据库中的数据replacedynamicvariables,并显示通用的javascript代码。 我一直在玩node.js文件系统,似乎是要走的路。 任何人都可以帮助我理解上述是如何完成的? 我很困惑,如何更新main.js更新userid.js中的代码? 谢谢

从mysql中删除 – angular度nodejs

我需要帮助来执行angular度删除和更新。 在nodejs是好的,在Firefox中testingrestApi 用于删除操作的angular度控制器的一部分 $scope.deleteCustomer = function (index) { var alert = confirm("Do you really want to delete the task?"); if (alert == true) { $http.post('/customers/', { customer: $scope.names[index] }) .then(function success(e) { $scope.errors = []; $scope.names.splice(index, 1); }, function error(e) { $scope.errors = e.data.errors; }); } }; Html代码: <td>{{customer.id}}</td> <td>{{customer.name}}</td> <td> <button ng-click="updateCustomer($index)" class="btn btn-primary […]

如果数据库连接closures或数据库服务器closures,会立即执行查询会发生什么情况

假设这个简单的查询。 var knex = require("knex")(knexConfig); var insert1 = {col1: "a4", col2: "b4", col3: "c4"}; knex.insert(insert1).into("test").then(function (id) { console.log(id); }) .finally(function() { knex.destroy(); }); 执行插入查询后,如果数据库服务器closures或连接立即closures会发生什么情况 它存储数据并返回错误或不存储数据并返回错误?

使用Node.js插入或更新多个值到MySQL表中

我有一个表有一个复合主键(room_id,x_coord和y_coord)和另一个名为card_id的列。 我想插入几个logging到MySQL数据库。 我正在使用mysql库以及node.js的快速库。 如果logging不存在,我想插入由room_id,x_coord,y_coord和card_id组成的新logging。 另一方面,如果logging确实存在,我想将当前logging更新为新的card_id。 这里是我目前的代码的副本: //previously defined: room_id, x, y, and cards[] var i = 0; var db_values = []; for (var row = 0; row < y; row++){ for (var col = 0; col < x; col++){ card = cards[i]; //The following line may have a problem? db_values.push([room_id, col, row, card['id'], card['id']]); i++; […]

节点数据库查询不起作用;

我完全是新的NodeJS编码,所以使自己更具挑战性我也试图通过“ node-orm2 ”使用ORM(除非有人可以build议一个更简单的ORM框架?) 我正在使用一个Ubuntu服务器,它也安装了MySQL,Apache和Tomcat – 所以我想Node应用程序在端口3000上侦听; (Apache在80端口,&Tomcat在8080端口)。 我已经安装了MySQL Driver + ORM模块,它们正确地位于“node_modules”文件夹中 – 这是我的项目的子文件夹。 MySQL设置简单的用户名:“用户”和密码:“密码” 当我运行应用程序时,我收到错误消息: “连接错误:错误:连接ECONNREFUSED 127.0.0.1:3306” 哦 – 应用程序只是试图写一个logging到数据库'testing',如果它的成功,它只是返回消息'成功'的浏览器。 这是我的代码到目前为止; var http = require('http'); var orm = require('orm'); var message; orm.connect('mysql://user:password@localhost/Test', function(err, db) { if (err) return console.error('Connection error: ' + err); var Test = db.define("test", { User : String, Num : Number, Address […]