簡體   English   中英

如何在 nodejs 中使用 exec()

[英]How to use exec() in nodejs

我有這個程序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);
            });
        });
    };

此代碼返回:

類型錯誤:無法讀取未定義的屬性“查詢”

如果我使用下面的代碼它工作得很好但是因為我想使用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);
            });
        });
    };

任何的想法?

更新

這是我在SQLQuery exec xyz_users_listSQLQuery

一

您的連接未定義,因此顯示此錯誤。 試試這個版本

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");
}

需要添加相應的 return 語句,但您會有所了解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM