web-dev-qa-db-fra.com

Insérer des données avec Node.js

J'essaie d'insérer des données avec Node.js. J'ai installé le support MySQL avec NPM. Je viens de vérifier un code source, j'ai écrit le code suivant, je peux suivre la sortie SQL dans le fichier console.log et la sortie SQL est correcte. Mais cela n’affecte aucune des lignes de la base de données MySQL.

Voici mon code:

var mysql      = require('mysql');

var connection = mysql.createConnection({
  Host     : 'cccc.net',
  user     : 'username',
  password : 'password',
});

var post  = {srcUserID: userSrcID, destUserID: msg.userid, messageContent: msg.txt, messageSendDate:sendDate };

connection.query('INSERT INTO messages VALUES ?', post, function(err, result) {

});
10
Onder OZCAN

Vous devez sélectionner une base de données avant d’effectuer une requête. Le moyen le plus simple consiste à l'ajouter à l'objet dans l'appel de createConnection:

var connection = mysql.createConnection({
  Host     : 'cccc.net',
  user     : 'xxxxx_usr',
  password : 'xxxxxxx',
  database : 'database_name'
});
5
SheetJS

C'est trop tard, mais si cela peut aider les autres. 

 var post  = {id: 1, title: 'Hello MySQL'};
 var query = connection.query('INSERT INTO posts SET ?', post, function(err, result) {
   // Neat!
 });
 console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL'

Notez qu'ils utilisent SET au lieu de VALUES. INSERT INTO ... SET x = y est une requête MySQL valide, alors que INSET INTO ... VALUES x = y n'est pas.

16
user254153

Comme vous l'avez indiqué dans vos commentaires, aucune base de données n'a été sélectionnée:

ER_NO_DB_ERROR: No database selected

Par conséquent, vous devez d'abord sélectionner une base de données, puis tout fonctionnera comme prévu. Ce que vous devez ajouter, c'est la propriété database à votre appel à createConnection. Votre code doit donc ressembler à ceci:

var mysql = require('mysql');

var connection = mysql.createConnection({
  Host: 'cccc.net',
  user: 'xxxxx_usr',
  password: 'xxxxxxx',
  database: 'name of your database goes here …'
});

var post  = {
  srcUserID: userSrcID,
  destUserID: msg.userid,
  messageContent: msg.txt,
  messageSendDate:sendDate
};

connection.query('INSERT INTO messages VALUES ?', post, function (err, result) {
  // ...
});
4
Golo Roden
   const pgp = require('pg-promise')()

// const connection = { Host: 'localhost', port: 5432, db: 'users' }
const connection = process.env.NODE_ENV === 'test'
  ? 'postgres:///users_test'
  : 'postgres:///users'
const db = pgp(connection) 

const addUser = (userName, jobName) => {
      return db.one(`
            SELECT j.job_id
            FROM jobs AS s
            WHERE j.job_name = $1`
            , [jobName])
            .then((jobs) => {
        return db.one(`
            INSERT INTO users
            (name, job_id)
            VALUES ($1, $2)
            RETURNING user_id`,
          [userName, jobs.job_id])
    })
    }


     addUser('Micheal', 'teacher')
      .then(console.log)
      .catch(console.error)




      const addUserToCompany = (userName, companyName) => {
        let userId
        let companyId
        return db.one(`
          SELECT user_id
          FROM users
          WHERE name=$1`, [userName])
          .then((user) => {
            userId = user.user_id
            return db.one(`
            SELECT company_id
            FROM companies
            WHERE name=$1`, [companyName])
          })
          .then((company) => {
            ownerId = company.company_id
            return db.one(`
              INSERT INTO companyUsers
                (user_id, company_id)
              VALUES
                ($1, $2)
              RETURNING *`,
              [userId, companyId])
          })
      }
      addUserToCompany('Micheal', 'Code Academy')
        .then(console.log)
        .catch(console.error)



        const updateUserName = (userId, newName) => {
          db.oneOrNone('UPDATE users SET name=$1 WHERE user_id=$2 RETURNING user_id', [newName, userId])
            .then((returnedId) => {
              if (returnedId) return { success: true, message: '' }
              return { success: false, message: `Could not find userId ${userId}` }
            })
            .catch(err => Object({ success: false, message: err.message }))
    }
    updateUserName(17, 'Micheal-Moore')

module.exports = { addUser, addUserToCompany , updateUserName }
0
seme