Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从条目文件访问数据库服务器/函数时出现问题。_Javascript_Mysql_Express_Webpack_Bundle - Fatal编程技术网

Javascript 从条目文件访问数据库服务器/函数时出现问题。

Javascript 从条目文件访问数据库服务器/函数时出现问题。,javascript,mysql,express,webpack,bundle,Javascript,Mysql,Express,Webpack,Bundle,因此,我在服务器启动时连接到数据库。然后,当我的站点加载到entry js文件中时,我需要一个具有我可以调用的函数的文件来运行一些查询。我的bundler试图构建包含数据库函数的文件,所有内容都会崩溃。我认为问题的根源在于我的databasemanger.js文件正在构建中(尽管它不应该构建),但我不知道如何解决这个问题 server.js 'use strict'; const express = require('express'); const app = express(); c

因此,我在服务器启动时连接到数据库。然后,当我的站点加载到entry js文件中时,我需要一个具有我可以调用的函数的文件来运行一些查询。我的bundler试图构建包含数据库函数的文件,所有内容都会崩溃。我认为问题的根源在于我的databasemanger.js文件正在构建中(尽管它不应该构建),但我不知道如何解决这个问题

server.js

    'use strict';
const express = require('express');
const app = express();
const path = require("path");
var Vue = require('vue');
var database = require('./databasemanager');
// Create connection to database

var DIST_DIR = path.join(__dirname, "dist"), PORT = 3000;

  app.use(express.static(DIST_DIR));


app.get("*", function (req, res) {  
  res.sendFile(path.join(DIST_DIR, "index.html"));
});

// var connection = new Connection(config);
database.connect();
app.listen(3000);
这是我的databasemanger.js

var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var ableToRun = false;

var config =
    {
        userName: '.....', // update me
        password: '....!', // update me
        server: '......', // update me
        options:
            {
                database: '.....' //update me
                , encrypt: true
            }
    };

var connection;

function connect() {
    connection = new Connection(config);
    // Attempt to connect and execute queries if connection goes through
    connection.on('connect', function (err) {
        if (err) {
            console.log(err);
            return false;
        }
        else {
            ableToRun = true;
            queryDatabase();
            return true;
        }
    }
    );
};


function queryDatabase() {
    // Read all rows from table
    request = new Request(
        "SELECT * FROM STUDENT",
        function (err, rowCount, rows) {
            if (err) {
                console.log(err);
            }
            console.log("rowCount::" + rowCount);
            console.log(rows)
            // process.exit();
        }
    );
    request.on('row', function (columns) {
        columns.forEach(function (column) {
            console.log("%s\t%s", column.metadata.colName, column.value);
        });
    });

    connection.execSql(request);
};

function unionQuery() {
    // Read all rows from table
    request = new Request(
        "SELECT * FROM STUDENT",
        function (err, rowCount, rows) {
            if (err) {
                console.log(err);
            }
            console.log("rowCount::" + rowCount);
            console.log(rows)
            // process.exit();
        }
    );
    request.on('row', function (columns) {
        columns.forEach(function (column) {
            console.log("%s\t%s", column.metadata.colName, column.value);
        });
    });

    connection.execSql(request);
};

module.exports = {
    connect: connect,
    unionQuery: unionQuery
}
mywebpack.config的设置如下:

var path = require("path");

var DIST_DIR = path.join(__dirname, "dist"),
    CLIENT_DIR = path.join(__dirname, "src");

module.exports = {
    context: CLIENT_DIR,
    entry: "./index",
    output: {
        path: DIST_DIR,
        filename: "bundle.js"
    },

    resolve: {
        extensions: ['', '.js']
    }
};
在我的index.js文件中有一行

let  databasemanager = require ('../databasemanager');
这似乎是问题的根源。我需要这个,因为我想在这里运行命令。 我在控制台上得到的部分错误是:

> webpack && npm start

Hash: 7cfb6092af955d7afa54
Version: webpack 2.1.0-beta.22
Time: 1458ms
     Asset     Size  Chunks             Chunk Names
index.html  1.69 kB          [emitted]
 bundle.js  1.17 MB       0  [emitted]  main
 [144] ../databasemanager.js 5.78 kB {0} [built]
 [322] ./index.js 555 bytes {0} [built]
    + 321 hidden modules

ERROR in ../~/tedious/lib/connector.js
Module not found: Error: Can't resolve 'net' in '/Users/nishantrimal/Desktop/DataBase/WebsistePresent/node_modules/tedious/lib'
 @ ../~/tedious/lib/connector.js 17:10-24
 @ ../~/tedious/lib/connection.js
 @ ../~/tedious/lib/tedious.js
 @ ../databasemanager.js
 @ ./index.js

ERROR in ../~/tedious/lib/connector.js
Module not found: Error: Can't resolve 'dns' in '/Users/nishantrimal/Desktop/DataBase/WebsistePresent/node_modules/tedious/lib'
 @ ../~/tedious/lib/connector.js 18:10-24
 @ ../~/tedious/lib/connection.js
 @ ../~/tedious/lib/tedious.js
 @ ../databasemanager.js
 @ ./index.js
最后,我的pacakage.json设置如下

{
  "name": "WebsistePresent",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js",
    "dev": "webpack && npm start"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "async": "^2.6.0",
    "express": "^4.16.2",
    "lodash": "^4.17.4",
    "tedious": "^2.1.1",
    "uniq": "^1.0.1",
    "vue": "^2.5.6"
  },
  "devDependencies": {
    "eslint": "^4.11.0",
    "file-loader": "^1.1.5",
    "webpack": "^2.1.0-beta.22",
    "webpack-node-externals": "^1.6.0"
  }
}

任何帮助都将不胜感激

在我看来,您的DB凭据可能是错误的,您能确认它们是正确的吗?@ElliotBlackburn是的,它们是正确的,因为当我在index.js中注释掉“let-databasemanager=require('../databasemanager');”时。我的sql查询执行运行正常,我只是更改了DB凭据,因此不必共享。在我看来,您的DB凭据可能是错误的,您能确认它们是否正确吗?@ElliotBlackburn是的,它们是正确的,因为当我在index.js中注释掉“let-databasemanager=require('../databasemanager');”时。我的sql查询执行运行良好,我只是更改了DB凭据,所以我不必共享它。