Как использовать exe c () в nodejs - PullRequest
0 голосов
/ 29 января 2020

У меня есть эта процедура xyz_users_list и она возвращает список пользователей с exec xyz_users_list, но как мне использовать ее в nodejs приложении?

Код

index.js

'use strict';

const express = require('express');
const app = express();
const mysql = require('mysql');
var connection = require('express-myconnection');
require('dotenv').config();

app.use(
    connection(mysql, {
        host: process.env.DB_HOST,
        user: process.env.DB_USERNAME,
        password: process.env.DB_PASSWORD,
        database: process.env.DB_DATABASE
    }, 'request')
);

app.get('/', (req, res) => {
    return res.sendFile(__dirname + '/index.html');
});

//all users
var Users = require('./routes/Users');
app.get('/users', Users.list);

Users.js

'use strict';

var response = require('../res');
const { exec } = require('child_process');

    exports.list = function(req, res) {
        req.getConnection(function(err, connection) {
            connection.query(exec('xyz_users_list'), function(err, rows) {
                if (err)
                    console.log("%s ", err);

                response.success(rows, res);
            });
        });
    };

этот код возвращает:

TypeError: Невозможно прочитать свойство 'query' из неопределенного

Если я использую код ниже, он работает просто отлично, но так как я хочу использовать exec, он возвращает ошибку.

exports.list = function(req, res) {
        req.getConnection(function(err, connection) {
            connection.query('SELECT * FROM `users`', function(err, rows) {
                if (err)
                    console.log("%s ", err);

                response.success(rows, res);
            });
        });
    };

Есть идеи?

Обновление

вот результат моего exec xyz_users_list в SQLQuery

one

1 Ответ

0 голосов
/ 29 января 2020

Ваше соединение установлено как неопределенное, поэтому оно показывает эту ошибку. Попробуйте эту версию

const sql = require("mssql");

exports.list = async function(req, res) {
  const connection = await sql.connect("connectionString");
  const results = await connection.request().execute("xyz_users_list");
}

Необходимо добавить соответствующие операторы возврата, но вы получите представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...